garbetjie / laravel-queue-database
基于数据库的 Laravel 队列驱动,具有乐观队列锁定。
1.3.3
2021-03-11 07:50 UTC
Requires
- php: >= 7.2
- illuminate/database: ^6.0 || >=7.30.4 <8.0 || >=8.24.0 <9.0
- illuminate/queue: ^6.0 || ^7.0 || ^8.0
- illuminate/support: ^6.0 || ^7.0 || ^8.0
README
这是一个为 Laravel 提供乐观锁定和作业计数缓存的数据库队列驱动。它深受https://ph4r05.deadcode.me/blog/2017/12/23/laravel-queues-optimization.html这篇文章和https://github.com/ph4r05/laravel-queue-database-ph4相关包的启发。
安装
- 使用 composer 安装此包
composer require garbetjie/laravel-database-queue
- 运行迁移来修改作业表。如果您尚未运行创建作业表的命令,请先执行该命令(
./artisan queue:table
)。
php artisan garbetjie:database-queue:table
php artisan migrate
- 将您的队列连接中的
database
驱动替换为database-garbetjie
<?php // In config/queue.php: return [ 'connections' => [ 'database' => [ 'driver' => 'database-garbetjie', 'table' => 'jobs', 'queue' => 'default', 'retry_after' => 60, 'prefetch' => 5, 'shuffle' => true, ] ], ];
-
可选地,您还可以创建一个“缓存”表用于作业计数。
如果您队列中有许多作业,运行类似
SELECT queue, COUNT(*) FROM jobs GROUP BY 1
的查询可能需要很长时间才能返回结果。运行以下命令生成迁移,这将创建一个作业计数缓存表,并通过使用触发器来更新作业计数。
php artisan garbetjie:database-queue:table-job-counts
php artisan migrate
配置
此队列驱动程序扩展了默认的 database
队列驱动程序。因此,此队列驱动程序的配置与原始数据库队列驱动程序(https://laravel.net.cn/docs/7.x/queues#driver-prerequisites)完全相同,只是增加了一些额外的配置选项
变更日志
-
1.3.2
- 由于 Dependabot 警报,排除
laravel/database
版本>=7.30.3 <8.0
。
- 由于 Dependabot 警报,排除
-
1.3.1
- 由于 Dependabot 警报,排除
laravel/database
版本>= 8.0 <8.22.1
。
- 由于 Dependabot 警报,排除
-
1.3.0
- 添加对 Laravel 8 的支持。