0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

LaravelAdvent Calendar 2024

Day 14

laravel キュードライバを変更したのにジョブの処理が同期実行されてしまう

Posted at

概要

laravelのキューを使ってバッチコマンド処理を記載したジョブを動かそうとした。
.envのQUEUE_CONNECTIONはsyncからdatabaseに変更したのに同期実行されてしまって若干詰まったので知見をまとめておく。
原因は笑っちゃうくらいしょうもないことだった。

筆者の場合の原因と解消方法

.envのQUEUE_CONNECTIONはsyncからdatabaseに変更した後にconfigのキャッシュクリアを忘れていた。

$ php artisan config:cacheを実行し$ php artisan queue:workを実行してジョブをディスパッチする処理を画面上のボタン起因で実行してみたら正常に動作した。

原因特定までの流れ

  1. .envのQUEUE_CONNECTIONはsyncからdatabaseに変更
  2. 「configのキャッシュをクリアしないとなあ」と思いつつ、configキャッシュクリアを失念
  3. 画面上のボタンでジョブをディスパッチ、うまく動作
  4. 本当に非同期で動作しているか不安になり、ジョブの一部の処理にsleep(20);を仕込む
  5. 画面上のボタンでジョブをディスパッチ、画面のリダイレクト処理が20秒待たされて実行(ということは非同期処理になっていない)
  6. 解消方法を試し、問題は解消
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?