在 Laravel 6 的队列处理器中,代码更改后未生效的处理
1、由于在 Windows 10 中,任务可以执行的最大秒数 (超时时间)的设置并未生效。因此,决定在线上 Linux 服务器中测试此功能。
2、在 Job 的 handle() 方法中添加:sleep(1200);,因为 $timeout = 600; ,所以预计会因为执行超时而失败。
3、但是在 Linux 服务器中添加后,并未生效。
4、队列处理器是一个常驻的进程并且在内存中保存着已经启动的应用状态。因此,它们并不会在启动后注意到你代码的更改。所以,在你的重新部署过程中,请记得 重启你的队列处理器。
5、你可以平滑地重启所有队列处理器通过使用 queue:restart 方法:php artisan queue:restart。如图1
/var/www/object # php artisan queue:restart Broadcasting queue restart signal.
6、再次执行队列任务,当时间超过 10 分钟后,自动失败,符合预期。如图2
Modules\\ThemeStoreDB\\Jobs\\ThemeInstallationJob has been attempted too many times or run too long. The job may have previously timed out.
近期评论