【问题标题】:queue:listen timeout stop processing queue processingqueue:listen timeout stop processing 队列处理
【发布时间】:2016-11-04 07:41:39
【问题描述】:

我正在使用 laravel 5 队列用搅拌机渲染一些 3d 文件。

一些模型,渲染有问题,渲染时间真的很长,比如 1 分钟。

我想要做作业超时(60 秒),当我将超时添加到 queue:listen 时,如果某些作业执行时间高于 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.  

我应该怎么做才能解决这个问题?

编辑:

我用谷歌搜索了主管,我发现主管用于在发生任何问题时继续排队,例如重新启动 VPS 或工作之外发生的其他问题。

我不认为我的问题必须使用主管......

【问题讨论】:

    标签: php laravel timeout queue jobs


    【解决方案1】:

    您可以使用 supervisor 重新启动进程 Laravel docs。您无法真正捕捉到 PHP 超时。将尝试次数设置为 1,因此它不会尝试大型进程。

    【讨论】:

    • 感谢您的快速响应。在共享主机中有什么解决方案吗?
    • 您可以尝试使用数据库队列驱动程序并使用 cron 作业。我从来没有做过,但它可能值得一试。除此之外,给自己一个VPS。它与共享主机的价格几乎相同(请参阅 DigitalOcean 或类似内容)
    • 只要您有权访问 SSH,您就应该能够关注文档并让主管启动并运行。祝你好运!
    • 我的东西主管不是很好的解决方案,每次我想更改任何设置我都应该以 root 身份登录 ....
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多