簡體   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