thotam/sansdaemon

无需守护进程批量处理 Laravel 队列;处理队列作业并终止进程

v1.2.4 2021-02-12 11:09 UTC

This package is auto-updated.

Last update: 2024-09-05 01:43:40 UTC


README

Build Status Latest Stable Version Total Downloads License

简介

无需守护进程批量处理 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) - 请查看 许可文件 了解更多信息。