Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /

Queues

En esta guía, puedes aprender cómo usar MongoDB como tu base de datos para Laravel Queue. Laravel Queue te permite crear tareas en cola que se procesan en segundo plano.

Para usar MongoDB como su base de datos para Laravel Queue, cambie el controlador en su aplicación. config/queue.php archivo:

'connections' => [
'database' => [
'driver' => 'mongodb',
// You can also specify your jobs-specific database
// in the config/database.php file
'connection' => 'mongodb',
'table' => 'jobs',
'queue' => 'default',
// Optional setting
// 'retry_after' => 60,
],
],

La siguiente tabla describe las propiedades que puede especificar para configurar el comportamiento de la cola:

Configuración
Descripción

driver

driver de queue requerido para usar. El valor de esta propiedad debe ser mongodb.

connection

Conexión a la base de datos utilizada para almacenar tareas. Debe ser una conexión mongodb. El driver usa la conexión por defecto si no se especifica una conexión.

table

Requerido Nombre de la colección de MongoDB para almacenar las tareas a procesar.

queue

Obligatorio Nombre de la cola.

retry_after

Especifica cuántos segundos debe esperar la conexión de la cola antes de volver a intentar una tarea que se está procesando. El valor es 60 por defecto.

Para usar MongoDB para gestionar tareas fallidas, crea una entrada failed en el archivo config/queue.php de la aplicación y especifica la base de datos y la colección:

'failed' => [
'driver' => 'mongodb',
'database' => 'mongodb',
'table' => 'failed_jobs',
],

La siguiente tabla describe las propiedades que puedes especificar para configurar cómo gestionar las tareas fallidas:

Configuración
Descripción

driver

driver de queue requerido para usar. El valor de esta propiedad debe ser mongodb.

database

Conexión a la base de datos utilizada para almacenar tareas. Debe ser una conexión mongodb. El driver usa la conexión por defecto si no se especifica una conexión.

table

Nombre de la colección de MongoDB donde se almacenan las tareas fallidas. El valor es failed_jobs por defecto.

Para registrar tareas fallidas, puedes utilizar el proveedor por defecto de tareas fallidas de Laravel. Para obtener más información, consulte Cómo manejar trabajos fallidos en la documentación Laravel sobre colas.

Laagrupación de trabajos es una función de Laravel que permite ejecutar un lote de trabajos y acciones relacionadas antes, después y durante la ejecución de los trabajos de la cola. Para obtener más información sobre esta función, consulta la agrupación de trabajos en la documentación de Laravel.

En MongoDB, no tienes que crear una colección designada antes de usar el procesamiento por lotes de tareas. La colección job_batches se crea automáticamente para almacenar metadatos sobre tus lotes de trabajos, como el porcentaje de finalización.

Para habilitar la agrupación de trabajos, cree la entrada batching en el archivo config/queue.php de su aplicación:

'batching' => [
'driver' => 'mongodb',
'database' => 'mongodb',
'table' => 'job_batches',
],

La siguiente tabla describe las propiedades que puedes especificar para configurar la agrupación de tareas:

Configuración
Descripción

driver

driver de queue requerido para usar. El valor de esta propiedad debe ser mongodb.

database

Conexión a la base de datos utilizada para almacenar tareas. Debe ser una conexión mongodb. El driver usa la conexión por defecto si no se especifica una conexión.

table

Nombre de la colección de MongoDB donde se almacenarán los lotes de tareas. El valor por defecto es job_batches.

Luego, agrega el proveedor de servicios en el archivo config/app.php de tu aplicación:

La integración de Laravel proporciona automáticamente la clase MongoDB\Laravel\MongoDBBusServiceProvider::class como el proveedor de servicios para la agrupación de tareas.

Volver

HTTP Sessions