0Pricing
PHP Academy · レッスン

キューの概念とドライバー

非同期処理を理解し、データベースまたは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=6379

databaseドライバーのセットアップ

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,default

queue: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 low

Horizonダッシュボード

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フィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. キューの概念とドライバー
  2. ジョブの作成とディスパッチ
  3. ジョブのリトライ、遅延、チェーン
  4. Laravel Horizonでキューを監視する
← PHP Academyに戻る