繁体   English   中英

Laravel无法确认长时间的工作

[英]Laravel fails to acknowledge jobs for long time processes

我在运行长时间的队列工作者时遇到问题,我目前正在使用Laravel 5.0。 我曾经将作业排在数据库上,并且没有问题,但是我需要将其从数据库中移出,所以我去了rabbitmq,所以我正在集成这个包: https : //github.com/vyuldashev/laravel-queue -rabbitmq /树/ 5.0版

短时间工作(少于3或4个薄荷糖)的一切都做得很好,但是我正尝试为队列工作量超过10的薄荷糖运行队列侦听器,问题是它们没有得到认可,并且留在了未确认,精确到16.6分钟后-默认ttl-; 他们转到下一份工作,但仍然没有得到认可。 如果此过程花费的时间太长,有时会断开管道或连接。

我相信问题出在工作人员本身,而不是我正在使用的程序包,这是我尝试应用的队列侦听器的两个示例,您能否建议如何以更好的方式使用它们或我有什么选择可以和他们一起使用:

  • php artisan队列:收听rabbitmq --queue = QUEUENAME --timeout = 0 --tries = 2
  • php artisan队列:work rabbitmq --queue = QUEUENAME --daemon --tries = 2

您可以像这样设置每个作业的$timeout

namespace App\Jobs;
class LongProcessJob implements ShouldQueue
{
  /**
   * The number of seconds the job can run before timing out.
   * @var int
   */
  public $timeout = 120;
}

有关更多详细信息,请参见Laravel队列

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM