Overview
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.
Configuración
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 de queue requerido para usar. El valor de esta propiedad debe ser |
| Conexión a la base de datos utilizada para almacenar tareas. Debe ser una conexión |
| Requerido Nombre de la colección de MongoDB para almacenar las tareas a procesar. |
| Obligatorio Nombre de la cola. |
| 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 |
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 de queue requerido para usar. El valor de esta propiedad debe ser |
| Conexión a la base de datos utilizada para almacenar tareas. Debe ser una conexión |
| Nombre de la colección de MongoDB donde se almacenan las tareas fallidas. El valor es |
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.
Agrupación de trabajos
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 de queue requerido para usar. El valor de esta propiedad debe ser |
| Conexión a la base de datos utilizada para almacenar tareas. Debe ser una conexión |
| Nombre de la colección de MongoDB donde se almacenarán los lotes de tareas. El valor por defecto es |
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.