如何为工匠工作设置超时?当超时工作将被杀死。
我在我的应用程序上使用 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%。所以我想为工匠工作设置一个超时,当超时工作将被自动终止。
我检查了 Laravel 代码,没有优雅的方法可以杀死这些漫长的工匠进程。
但是,您可以自行承担风险来限制 php 的整体执行时间。您可以为此使用函数set_time_limit()或在 php.ini 中添加 max_execution_time
| 归档时间: |
|
| 查看次数: |
13886 次 |
| 最近记录: |