バックエンド処理が遅延するとキューを複数回投げてしまう
問題点
非同期でバックエンドへ処理を投げる処理を作成しましたが、バックエンド側で処理に時間がかかると勝手に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で強制終了をかける必要がある。
コメント