queueworker/sansdaemon

无需守护进程批量处理 Laravel 队列;处理队列任务并结束进程

v1.2.7 2023-03-28 17:28 UTC

This package is auto-updated.

Last update: 2024-08-28 22:12:03 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 队列 文档。

要运行无守护进程模式的队列工作进程,只需在原始 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)- 查看更多许可证文件