때로는 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);
. 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 큐 드라이버를 사용하고 있습니다.