如何为Laravel Artisan设置超时

wnavrhmk  于 2023-01-06  发布在  其他
关注(0)|答案(3)|浏览(240)

如何设置一个工匠作业的超时时间?当超时时,作业将被杀死。
我在我的应用程序上使用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%。所以我想为工匠任务设置一个超时,当超时时,任务会被自动杀死。

gblwokeq

gblwokeq1#

我检查了Laravel代码,没有优雅的方法来杀死这些漫长的工匠过程。
但是你可以限制php的执行时间,你可以使用函数set_time_limit()或者在php.ini中添加max_execution_time

uujelgoq

uujelgoq2#

我遇到了同样的问题,在cliphp.ini文件中更改max_input_time的值可以达到预期的效果。

示例:/etc/php/7.3/cli/php.ini

;;;;;;;;;;;;;;;;;;;
; Resource Limits ;
;;;;;;;;;;;;;;;;;;;

; Maximum execution time of each script, in seconds
; http://php.net/max-execution-time
; Note: This directive is hardcoded to 0 for the CLI SAPI
max_execution_time = 99
but5z9lq

but5z9lq3#

可以将max_execution_time指定为选项。
示例,而不是

php artisan your-slow-command

您可以用途:

php -d max_execution_time=900 artisan your-slow-command

相关问题