Queues
Overview
在本指南中,您可以学习;了解如何使用MongoDB作为 Laravel 队列的数据库。 Laravel 队列允许您创建在背景处理的排队作业。
配置
要使用MongoDB作为 Laravel 队列的数据库,请更改应用程序的 config/queue.php
文件中的驾驶员程序:
'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, ], ],
下表描述了可以指定用于配置队列行为的属性:
设置 | 说明 |
---|---|
driver | 必需要使用的队列驾驶员。 此属性的值必须是 mongodb 。 |
connection | 用于存储作业的数据库连接。 它必须是 mongodb 连接。 如果未指定连接,则驾驶员将使用默认连接。 |
table | 必需MongoDB集合的名称,用于存储要进程的作业。 |
queue | 必填队列名称。 |
retry_after | 指定在重试正在处理的作业之前队列连接应等待的秒数。 默认值为 60 。 |
要使用MongoDB处理失败的作业,请在应用程序的 failed
config/queue.php
文件中创建 条目并指定数据库和集合:
'failed' => [ 'driver' => 'mongodb', 'database' => 'mongodb', 'table' => 'failed_jobs', ],
下表描述了可以指定用于配置如何处理失败作业的属性:
设置 | 说明 |
---|---|
driver | 必需要使用的队列驾驶员。 此属性的值必须是 mongodb 。 |
database | 用于存储作业的数据库连接。 它必须是 mongodb 连接。 如果未指定连接,则驾驶员将使用默认连接。 |
table | 用于存储失败作业的MongoDB集合的名称。 默认值为 failed_jobs 。 |
要注册失败的作业,可以使用 Laravel 中默认的失败作业提供商。要学习;了解更多信息,请参阅有关队列的 Laravel 文档中的 处理失败的作业 。
作业批处理
作业批处理是 Laravel 的一项功能,可让您在执行队列中的作业之前、之后和期间执行批处理作业以及相关动作。 要学习;了解有关此功能的更多信息,请参阅 作业批处理 在 Laravel 文档中。
在MongoDB中,您不必在使用作业批处理之前创建指定集合。 job_batches
集合会自动创建,用于存储有关作业批处理的元数据,例如作业的完成百分比。
要启用作业批处理,请在应用程序的config/queue.php
文件中创建batching
条目:
'batching' => [ 'driver' => 'mongodb', 'database' => 'mongodb', 'table' => 'job_batches', ],
下表描述了可以指定用于配置作业批处理的属性:
设置 | 说明 |
---|---|
driver | 必需要使用的队列驾驶员。 此属性的值必须是 mongodb 。 |
database | 用于存储作业的数据库连接。 它必须是 mongodb 连接。 如果未指定连接,则驾驶员将使用默认连接。 |
table | 用于存储作业批处理的MongoDB集合的名称。 默认值为 job_batches 。 |
然后,在应用程序的config/app.php
文件中添加服务提供商:
Laravel 集成会自动提供 MongoDB\Laravel\MongoDBBusServiceProvider::class
类作为作业批处理的服务提供商。