队列
概述
在这份指南中,您可以了解如何将 MongoDB 作为 Laravel Queue 的数据库。Laravel Queue 允许您创建后台处理的队列任务。
配置
要使用 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 处理 失败的作业,请在您的应用程序的 config/queue.php
文件中创建一个 failed
条目并指定数据库和集合
'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
类作为工作批量处理的服务提供者。