イベントとジョブ、どちらを使うべきか(laravel)

使うのはどっちでもなくタスクスケジュール。
フラグと変更した時間を記録→0ではないモデルを取得して30分経過していたら0にする処理を一定時間ごとに繰り返す。
何分ごとに実行するかは遅れてもいい許容範囲に合わせて設定する。

5分ごとに実行している場合

  1. 0時3分に変更
  2. タスクスケジュールは0時5分、10...30、35分に実行。
  3. 35分の時に30分以上経過してるので0にする処理が動く。

元の0時3分からは32分後に0にしている。
このくらい遅れてもいいなら5分でいいし、もっと短くしたいなら1分。

イベントとキューを使う場合

イベントリスナーのdelayで30分後にすればイベント発火から30分後に実行はできるけどAWS SQSは15分までの制限があるので30分も遅らせるようなキューの使い方はしない。

こっちを使ったとしても万が一の処理の失敗に備えてタスクスケジュールでの確認も必要になるので結局最初からタスクスケジュールを使えばいい。

コメントを投稿

0 コメント