0
有時我需要釋放Laravel作業並重新加入隊列。但是,當這樣做時,嘗試次數會增加。它變爲2,如果你的隊列工作者限制爲1嘗試,它將永遠不會運行。發佈隊列Laravel作業不增加嘗試次數
如何在不增加嘗試的情況下發布?
要釋放我使用:
$this->release(30);
在此之前行我曾嘗試下面的代碼:
$payload = json_decode($this->payload, true);
if (isset($payload['attempts'])) {
$payload['attempts'] = 0;
}
$this->payload = json_encode($payload);
這是行不通的。屬性不可用。它似乎存在於the Job class。
代碼Laravel框架必須重置計數在RetryCommand
類。這是因爲如下:
protected function resetAttempts($payload)
{
$payload = json_decode($payload, true);
if (isset($payload['attempts'])) {
$payload['attempts'] = 0;
}
return json_encode($payload);
}
但我不知道如何訪問從我的作業類的$payload
?
有沒有更好的方式來釋放一個工作,而不增加嘗試次數?
我正在使用Laravel 5.4和Redis隊列驅動程序。