Vig*_*igs 17 php queue daemon laravel artisan
为了处理大量的工作,我运行可变数量的队列工作者,具体取决于完成的工作量.我不想在完成我们认为合适的时间段内完成需要完成的工作之外运行更多的工人.
目前,我启动了5个守护程序队列工作程序用于测试目的,但是在生产中,这个数字可能介于25到100名工作人员之间,可能更多.我知道在部署时,我必须首先通过使用框架将框架置于维护模式来停止队列工作php artisan down,因为该--daemon标志导致框架仅在工作程序启动时加载,因此新代码在部署期间不会生效工人重新开始.
如果由于某种原因我需要停止工作,我可以将应用程序置于维护模式,php artisan down这将导致工作人员在完成当前工作(如果他们正在工作)之后死亡.但是,有时我可能会在不将整个应用程序置于维护模式的情况下杀死工作人员.
有没有一种安全的方法来阻止工人继续处理他们当前的工作,然后在不将整个应用程序置于维护模式的情况下死亡?
基本上我需要的是一个php artisan queue:stop,表现得像php artisan queue:restart,但一旦完成工作就不会重启工人.
我在那里期待有一个类似的php artisan queue:stop命令可以做到这一点,但似乎并非如此.
使用ps aux | grep php我能够为工作者获取进程ID,并且我可以通过这种方式终止进程,但我不想在处理作业的过程中终止进程.
谢谢.
使用--daemon标志时,当队列为空时,工作人员不应退出。
我认为您正在寻找的是队列文档中的内容。
该php artisan queue:restart命令将提示工作人员在完成当前工作后重新启动。
| 归档时间: |
|
| 查看次数: |
23212 次 |
| 最近记录: |