Php 队列:侦听超时停止处理队列处理

Php 队列:侦听超时停止处理队列处理,php,laravel,timeout,queue,jobs,Php,Laravel,Timeout,Queue,Jobs,我正在使用Laravel5队列使用blender渲染一些3d文件 有些模型在渲染方面存在问题,渲染时间非常长,大约为1分钟 当我向队列添加超时时,我希望有一个执行作业的超时时间(60秒):听着,如果某个作业执行时间高于60秒,我的队列将停止,但我希望忽略该作业,继续执行其他作业 我运行的命令: php artisan queue:listen --tries=3 --timeout=60 错误: Symfony\Component\Process\Exception\ProcessTimedO

我正在使用Laravel5队列使用blender渲染一些3d文件

有些模型在渲染方面存在问题,渲染时间非常长,大约为1分钟

当我向队列添加超时时,我希望有一个执行作业的超时时间(60秒):听着,如果某个作业执行时间高于60秒,我的队列将停止,但我希望忽略该作业,继续执行其他作业

我运行的命令:

php artisan queue:listen --tries=3 --timeout=60
错误:

Symfony\Component\Process\Exception\ProcessTimedOutException]                                                                                                                     
  The process "'/usr/local/php56/bin/php56' 'artisan' queue:work '' --queue='default' --delay=0 --memory=128 --sleep=3 --tries=3 --timeout=120 --env='production'" exceeded the timeout of 60
  seconds.  
我该怎么解决这个问题

编辑:

我在谷歌上搜索了supervisor,发现当出现任何问题时,supervisor都会继续排队,比如重新启动VPS或在工作之外发生其他问题


我认为我的问题不一定要使用主管…

您可以使用主管重新启动流程。您无法真正捕获PHP超时。将尝试次数设置为1,这样它就不会尝试较大的进程。

您可以使用supervisor重新启动进程。您无法真正捕获PHP超时。将尝试次数设置为1,这样它就不会尝试较大的过程。

感谢您的快速响应。在共享主机中有什么解决方案可以做到这一点吗?您可以尝试使用数据库队列驱动程序和cron作业。我从来没做过,但也许值得一试。除此之外,给自己找一个副总裁。它的价格与共享主机几乎相同(请参阅DigitalOcean或类似内容),只要您能够访问SSH,您就应该能够遵循文档并启动并运行supervisor。祝你好运我认为主管不是一个好的解决方案,每次我想更改任何设置时,我都应该以root用户身份登录…感谢您的快速响应。在共享主机中有什么解决方案可以做到这一点吗?您可以尝试使用数据库队列驱动程序和cron作业。我从来没做过,但也许值得一试。除此之外,给自己找一个副总裁。它的价格与共享主机几乎相同(请参阅DigitalOcean或类似内容),只要您能够访问SSH,您就应该能够遵循文档并启动并运行supervisor。祝你好运我认为主管不是一个好的解决方案,每次我想更改任何设置时,我都应该以root身份登录。。。。