thotam / sansdaemon
无需守护进程批量处理 Laravel 队列;处理队列作业并终止进程
v1.2.4
2021-02-12 11:09 UTC
Requires
- php: ^7.2|^8.0
- illuminate/support: ^6.0|^7.0|^8.0
Requires (Dev)
- mockery/mockery: ^1.1
- orchestra/testbench: ^4.0
- phpunit/phpunit: ^8
README
简介
无需守护进程批量处理 Laravel 队列;处理队列中的所有作业并退出,不运行守护进程模式。这在只想处理队列作业并退出工作进程,以免在内存中积压作业的情况下非常有用。
安装
要安装 SansDaemon 的最新版本,只需使用 composer
下载
composer require queueworker/sansdaemon
- 如果你的 Laravel 版本低于 5.5,你需要在
config/app.php
文件中添加服务提供者。
Queueworker\SansDaemon\SansDaemonServiceProvider::class,
用法
SansDaemon 是一个控制台应用程序,它扩展了 Laravel 的 WorkCommand
- Illuminate\Queue\Console\WorkCommand
的功能。请参阅 Laravel 队列 文档。
要运行 sans-daemon 模式的队列工作进程,只需将 --sansdaemon
选项添加到原始 Laravel 队列工作进程命令中
php artisan queue:work --sansdaemon
参数和选项
由于此包扩展了 Laravel 的 WorkCommand
,它接受与原始 WorkCommand 完全相同的所有参数和选项,并增加了三个选项
--sansdaemon
选项告诉工作进程在不运行守护进程模式下处理队列作业。--jobs
(默认:0,可选)- 允许你指定每次命令运行时处理的作业数量。默认值0
表示将处理队列中的所有可用作业。--max_exec_time
(默认:ini_get('max_execution_time') - 5s
,可选)- 在一些网络主机上,如果你的脚本超过一定时间,它将被终止。为了防止在队列非常满的情况下出现这种行为,工作进程将在--max_exec_time
后停止。这对于通过应用程序的路由或控制器运行此命令特别有用。请参阅 Laravel 文档 了解如何以编程方式运行队列。
关于 --max_exec_time
的说明
0
(零)表示工作进程将无限期运行,在此上下文中意味着直到工作进程完成。这是从 CLI 运行时的默认行为。- 此选项不会防止
执行时间超过最大值
错误,它将通过不在脚本达到其 最大执行时间 时运行下一个队列作业来尝试避免它。
测试
composer test
许可协议
MIT 许可协议 (MIT) - 请查看 许可文件 了解更多信息。