oriceon/laravel-async-queue

Laravel 异步队列驱动程序(后台推送)

2.0.0 2024-03-12 18:45 UTC

This package is auto-updated.

Last update: 2024-09-16 06:55:13 UTC


README

将函数/闭包推送到后台。

与 'sync' 驱动程序类似,这并不是真正的队列驱动程序。它总是立即执行。唯一的区别是将闭包发送到后台,而不等待响应。此包作为在后台运行偶然任务的替代方案,而不需要设置“真正的”队列驱动程序,更易于使用。

注意: 此处使用的是 DatabaseQueue,请确保首先设置它,包括迁移。

安装

使用 Composer 需要此包的最新版本

composer require oriceon/laravel-async-queue

您需要创建队列迁移表并运行它。

$ php artisan queue:table
$ php artisan migrate

现在您应该可以在 config/queue.php 中使用异步驱动程序。使用与数据库相同的配置,但使用 async 作为驱动程序。

'connections' => [
    ...
    'async' => [
        'driver' => 'async',
        'table'  => 'jobs',
        'queue'  => 'default',
        'expire' => 60,
    ],
    ...
}

将默认值设置为 async,可以通过更改配置或将 QUEUE_DRIVER 在您的 .env 文件中设置为 async 来实现。

注意:默认情况下,使用 php 作为 PHP 的二进制路径。您可以通过向队列配置添加 binary 选项来更改此设置。您还可以添加额外的参数(例如 HHVM)。

'connections' => [
    ...
    'async' => [
        'driver'      => 'async',
        'table'       => 'jobs',
        'queue'       => 'default',
        'expire'      => 60,
        'binary'      => 'php',
        'binary_args' => '',
    ],
    ...
}

它应该与同步驱动程序的工作方式相同,因此不需要运行队列监听器。缺点是您实际上无法排队或计划任务。Queue::later() 也会直接执行。有关更多信息,请参阅 https://laravel.net.cn/docs/queues

感谢主要作者

Fwork 包:barryvdh/laravel-async-queue