如何设置一个工匠作业的超时时间?当超时时,作业将被杀死。
我在我的应用程序上使用Laravel 5.0。我在app/Console/Kernel.php中每分钟安排一些工匠作业。
ps -ef | grep artisan
似乎每个作业都在单独的进程中运行。
根目录23322 1 0 13:44?00:00:00 xxx/php-5.5.7/bin/php工匠提取主题0 10 1
根目录23324 1 0 13:44?00:00:00 xxx/php-5.5.7/bin/php工匠提取主题0 10 2
根目录23326 1 0 13:44?00:00:00 xxx/php-5.5.7/bin/php手工抓取评论
当一个任务完成后,进程会被自动杀死。但奇怪的是,有些进程没有被正常杀死。随着时间的推移,越来越多的奇怪进程是永久的,这导致CPU 100%。所以我想为工匠任务设置一个超时,当超时时,任务会被自动杀死。
3条答案
按热度按时间gblwokeq1#
我检查了Laravel代码,没有优雅的方法来杀死这些漫长的工匠过程。
但是你可以限制php的执行时间,你可以使用函数set_time_limit()或者在php.ini中添加max_execution_time
uujelgoq2#
我遇到了同样的问题,在cliphp.ini文件中更改
max_input_time
的值可以达到预期的效果。示例:(
/etc/php/7.3/cli/php.ini
)but5z9lq3#
可以将
max_execution_time
指定为选项。示例,而不是
您可以用途: