queueworker / sansdaemon
无需守护进程批量处理 Laravel 队列;处理队列任务并结束进程
v1.2.7
2023-03-28 17:28 UTC
Requires
- php: ^7.2|^8.0
- illuminate/support: ^6.0|^7.0|^8.0|^9.0|^10.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 队列 文档。
要运行无守护进程模式的队列工作进程,只需在原始 Laravel 队列工作进程命令中添加 --sansdaemon
选项
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 运行时的默认行为。- 此选项不会防止
执行时间超时
错误,它将尝试通过不在脚本达到其 max_execution_time 时运行下一个队列中的任务来避免它。
测试
composer test
许可证
MIT 许可证(MIT)- 查看更多许可证文件。