【Laravel】バックエンド処理が遅延するとキューを複数回投げてしまう

Laravel

バックエンド処理が遅延するとキューを複数回投げてしまう

問題点

非同期でバックエンドへ処理を投げる処理を作成しましたが、バックエンド側で処理に時間がかかると勝手に2回目のバックエンドを実行してしまう問題がありました。

原因

一定時間応答がないとキューワーカー(queue:work)が気を利かせて2回目の実行をしてくれていました。

解決方法

config/queue.php

'beanstalkd' => [
    'driver' => 'redis',
    'connection' => 'default',
    'queue' => 'default',
    'retry_after' => 90,
    'block_for' => null,
],

retry_afterの値で繰り返し処理が行われる。この値を伸ばすか、キューワーカー(queue:work)実行時のオプション–timeoutで強制終了をかける必要がある。

コメント