garbetjie/laravel-queue-database

基于数据库的 Laravel 队列驱动,具有乐观队列锁定。

1.3.3 2021-03-11 07:50 UTC

This package is auto-updated.

Last update: 2024-09-11 15:44:17 UTC


README

这是一个为 Laravel 提供乐观锁定和作业计数缓存的数据库队列驱动。它深受https://ph4r05.deadcode.me/blog/2017/12/23/laravel-queues-optimization.html这篇文章和https://github.com/ph4r05/laravel-queue-database-ph4相关包的启发。

安装

  1. 使用 composer 安装此包
composer require garbetjie/laravel-database-queue
  1. 运行迁移来修改作业表。如果您尚未运行创建作业表的命令,请先执行该命令(./artisan queue:table)。
php artisan garbetjie:database-queue:table
php artisan migrate
  1. 将您的队列连接中的 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,
        ]
    ], 
];
  1. 可选地,您还可以创建一个“缓存”表用于作业计数。

    如果您队列中有许多作业,运行类似 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
  • 1.3.1

    • 由于 Dependabot 警报,排除 laravel/database 版本 >= 8.0 <8.22.1
  • 1.3.0

    • 添加对 Laravel 8 的支持。