キューの概念とドライバー
非同期処理を理解し、データベースまたはRedisのキュードライバーを設定します
「キューの概念とドライバー」はCoddyKit上の無料PHP Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはPHP Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 PHP Academyコースには全4レッスンが含まれています。
キューとは
キューを使うと、時間のかかる処理や大量のリソースを消費する処理(メール送信、画像のリサイズ、外部APIへのアクセスなど)をバックグラウンドワーカーに回し、HTTPレスポンスを高速に保てます。
キューのアーキテクチャ
メインプロセス(Webサーバー)がジョブをキューに追加します。別のワーカープロセスがジョブを取り出し、非同期で実行します。
利用可能なキュードライバー
Laravelは複数のキューバックエンドに対応しています:
database— ジョブをDBに保存します(始めるのに適しています)redis— 高速で、本番環境に対応していますsqs— AWS Simple Queue Serviceですbeanstalkd— 高速で軽量ですsync— 即座に実行します(ローカル開発向け)
キュードライバーの設定
.envでドライバーを設定します。
# .env
QUEUE_CONNECTION=redis
REDIS_HOST=127.0.0.1
REDIS_PORT=6379databaseドライバーのセットアップ
databaseドライバーを使用する場合は、jobsテーブルを作成します。
$ php artisan queue:table
$ php artisan migrateキューワーカーの起動
ワーカープロセスがキューからジョブを取り出し、実行します。
$ php artisan queue:work
# Or specify connection and queue:
$ php artisan queue:work redis --queue=emails,defaultqueue:listenとqueue:workの違い
queue:workはアプリケーションを一度読み込み、メモリ上でジョブを処理します。高速ですが、コードを変更した後にワーカーの再起動が必要です。queue:listenはジョブごとにアプリケーションを再読み込みするため、開発が容易です。
失敗したジョブ
ジョブがすべてのリトライに失敗すると、failed_jobsテーブルに保存されます。Artisanで確認や再試行ができます。
$ php artisan queue:failed
$ php artisan queue:retry all
$ php artisan queue:flushキューの優先順位
名前付きキューを複数定義し、ワーカーの起動時に優先順位を割り当てます。
$ php artisan queue:work --queue=high,default,low
# Worker checks high first, then default, then lowHorizonダッシュボード
Redisキューでは、Laravel Horizonがスループット、失敗したジョブ、ワーカーの統計情報を表示する、美しいリアルタイムダッシュボードを提供します。
ドライバーの選択
ローカルではsync、小規模なプロジェクトではdatabase、本番環境で規模を拡大する場合はredisを使用します。すでにAWSを利用していて無限のスケールが必要な場合を除き、SQSは避けてください。
概要
キューは時間のかかる処理をバックグラウンドワーカーに移します。.envでドライバーを設定し、Artisanでジョブを作成して、queue:workでワーカーを起動します。failed_jobsテーブルで失敗したジョブを監視します。
クイックチェック
同じプロセス内でジョブを即座に実行するキュードライバーはどれですか?
よくある質問
「キューの概念とドライバー」レッスンは無料ですか?
はい。「キューの概念とドライバー」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、PHP Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 PHP Academyコースには全4レッスンが含まれています。
「キューの概念とドライバー」で何を学びますか?
非同期処理を理解し、データベースまたはRedisのキュードライバーを設定します ブラウザで直接実行するハンズオンコードでPHP Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
PHP Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのPHP Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。
「キューの概念とドライバー」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このPHP Academyレッスンでコードを書いて実行できますか?
はい。すべてのPHP Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。