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 13

laravel 結局キューとジョブとワーカーってなんなの

Posted at

概要

laravelのキューとジョブとワーカーについて簡単にまとめる。

内容

キュー

処理を入れておくための「筒」
この「筒」の素材(ドライバ)を指定する事ができる
素材(ドライバ)の種類は下記

  • sync(ローカル開発環境のみの設定を推奨。動作確認には使えるが同期処理になってしまうのでデプロイしたら「挙動が変わった」なんてことがありうる。)
  • database
  • redis
  • beanstalkd
  • sqs

どの素材(ドライバ)を使うかは自由だがそれぞれ得手不得手がある。(マイグレーションが必要だったり、デプロイ時に別途お金がかかったり。ローカル開発環境だけでも別でDockerコンテナ立てる必要があったり)

ジョブ

実行する処理命令が記載されているもの
基本的に非同期実行したい処理をただ書くだけ。
若干お作法があるので注意

ワーカー

キューに入ったジョブの処理を実行してくれるもの
本当にそれだけ。

キューとジョブとワーカーの使い方(ローカル開発環境でターミナル使用)

  1. .envのQUEUE_CONNECTIONを確認し、必要の応じてキューの素材(ドライバ)をdatabaseなどに変更
  2. DBにjobsテーブルがあることを確認(なければ$ php artisan make:queue-tableを実行してから$ php artisan migrateを実行)
  3. ジェネレートコマンド(php artisan make)を使ってジョブを作成
  4. 作成されたジョブのファイルに処理を記載
  5. tinkerやコードでジョブのクラス::dispatch();を実行しジョブをキューにいれる
  6. ターミナルで$ php artisan queue:workを実行しワーカーを起動

参考文献

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?