cee*_*yoz 21 php amazon-sqs laravel laravel-4
我们有一堆SQS工作,我们使用Laravel来监视和处理php artisan queue:listen
.
定期,有几分钟的短暂和SQS超时.发生这种情况时,请queue:listen
使用以下消息中止:
[Symfony\Component\Process\Exception\ProcessTimedOutException]
The process "php artisan queue:work
--queue="https://sqs.us-west-2.amazonaws.com/*******/queue"
--delay=0 --memory=128 --sleep=3 --tries=0 -env=production"
exceeded the timeout of 60 seconds.
Run Code Online (Sandbox Code Playgroud)
我已经尝试过处理异常app/start/global.php
,或者app/start/artisan.php
:
App::error(function(Symfony\Component\Process\Exception\ProcessTimedOutException $exception) {
// do nothing
});
Run Code Online (Sandbox Code Playgroud)
不幸的是,异常仍然发生,我queue:listen
仍然死了.
如何捕获此异常并忽略它以进行重试?
您可以在异常处理程序中重新运行“php artisan queue:work ...”队列作业,
或将 /vendor/symfony/process/Symfony/Component/Process/Process::setTimeout() 值增加到更高的值。
或者也许两者兼而有之。