Overview
En esta guía, aprenderá a usar MongoDB como base de datos para Laravel Queue. Laravel Queue le permite crear trabajos 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 |
|---|---|
| Controlador de cola necesario. El valor de esta propiedad debe |
| Conexión de base de datos utilizada para almacenar trabajos. Debe ser una conexión |
| Requerido Nombre de la colección de MongoDB para almacenar las tareas a procesar. |
| Nombrerequerido de la cola. |
| Especifica cuántos segundos debe esperar la conexión a la cola antes de reintentar un trabajo en proceso. El valor predeterminado 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 puede especificar para configurar cómo manejar trabajos fallidos:
Configuración | Descripción |
|---|---|
| Controlador de cola necesario. El valor de esta propiedad debe |
| Conexión de base de datos utilizada para almacenar trabajos. Debe ser una conexión |
| Nombre de la colección de MongoDB donde se almacenan las tareas fallidas. El valor es |
Para registrar trabajos fallidos, puede usar el proveedor de trabajos fallidos predeterminado de Laravel. Para obtener más información, consulte Cómo tratar trabajos fallidos en la documentación de 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 es necesario crear una colección designada antes de usar la agrupación de trabajos. La colección job_batches se crea automáticamente para almacenar metadatos sobre los lotes de trabajos, como su 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 |
|---|---|
| Controlador de cola necesario. El valor de esta propiedad debe |
| Conexión de base de datos utilizada para almacenar trabajos. Debe ser una conexión |
| Nombre de la colección de MongoDB donde se almacenan los lotes de trabajos. El valor predeterminado es |
Luego, agregue el proveedor de servicios en el archivo config/app.php de su aplicación:
La integración de Laravel proporciona automáticamente la clase MongoDB\Laravel\MongoDBBusServiceProvider::class como proveedor de servicios para la agrupación de trabajos.