2017-05-04 29 views
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にあるようです。

コードは、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キュードライバを使用しています。

答えて

0

これで、新しいジョブを削除して再キューイングしました。多分きれいではないかもしれないが、うまくいく。

$this->delete(); 

$job = (new ProcessPage($this->pdf))->onQueue('converting'); 
dispatch($job); 
関連する問題