Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
Click here >
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 utilizar MongoDB como base de datos para Laravel Queue, cambie el controlador en su aplicación driver 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.

Loteo de trabajos es una funcionalidad de Laravel que permite ejecutar un lote de trabajos y acciones relacionadas antes, después y durante la ejecución de los trabajos desde la cola. Para obtener más información sobre esta funcionalidad, consulta procesamiento por lotes de tareas 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 activar el procesamiento por lotes de trabajos, crea la entrada batching en el archivo config/queue.php de la 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