如何为 Laravel 工匠设置超时

Jac*_*kYe 5 php laravel

如何为工匠工作设置超时?当超时工作将被杀死。

我在我的应用程序上使用 Laravel 5.0。我每分钟在 app/Console/Kernel.php 中安排一些工匠工作。当我 grep 那些工作

ps -ef | grep artisan
Run Code Online (Sandbox Code Playgroud)

似乎每个作业都在单独的进程中运行。

根 23322 1 0 13:44 ? 00:00:00 xxx/php-5.5.7/bin/php artisan fetchTopic 0 10 1

根 23324 1 0 13:44 ? 00:00:00 xxx/php-5.5.7/bin/php artisan fetchTopic 0 10 2

根 23326 1 0 13:44 ? 00:00:00 xxx/php-5.5.7/bin/php artisan fetchComment

当一项工作完成其任务时,该进程将自动终止。但是奇怪的是有些进程没有被正常杀死。随着时间的推移,越来越多的奇怪进程是永久性的,导致 CPU 100%。所以我想为工匠工作设置一个超时,当超时工作将被自动终止。

Mar*_*ala 5

我检查了 Laravel 代码,没有优雅的方法可以杀死这些漫长的工匠进程。

但是,您可以自行承担风险来限制 php 的整体执行时间。您可以为此使用函数set_time_limit()或在 php.ini 中添加 max_execution_time