サーチ…


前書き

キューを使用すると、バックグラウンドプロセスで処理するのに時間がかかる作業のビットをアプリケーションが予約することができます。

ユースケース

たとえば、タスクを開始した後に顧客に電子メールを送信する場合は、メールをバックグラウンドでキューに入れながら、ユーザーをすぐに次のページにリダイレクトすることをお勧めします。電子メールの送信に数秒以上の時間がかかることがあるため、次のページの読み込み時間が短縮されます。

もう1つの例は、顧客が注文をチェックアウトした後に在庫システムを更新することです。 API呼び出しが完了するのを待つのではなく、数秒かかるかもしれませんが、すぐにユーザーをチェックアウト成功ページにリダイレクトして、API呼び出しをバックグラウンドで待ち行列に入れることができます。

キュードライバの構成

Laravelの各キュードライバはconfig/queue.phpファイルから構成されています。キュードライバは、キューに入れられたジョブの実行方法を管理し、ジョブが成功したか失敗したかを識別し、そうするように構成されている場合はジョブを再試行するハンドラです。

Laravelは、そのままの状態で、次のキュードライバをサポートしています。

sync

同期または同期は、既存のプロセス内でキューに入れられたジョブを実行するデフォルトのキュードライバです。このドライバを有効にすると、キューに入れられたジョブがすぐに実行されるため、キューが実質的になくなります。これは、ローカルまたはテストの目的には便利ですが、キューを設定することによるパフォーマンス上の利点がなくなるため、プロダクションではお勧めできません。

database

このドライバは、キューに入れられたジョブをデータベースに格納します。このドライバを有効にする前に、キューに登録されたジョブと失敗したジョブを格納するデータベーステーブルを作成する必要があります。

php artisan queue:table
php artisan migrate

sqs

このキュードライバはAmazonのSimple Queue Serviceを使用して、キューに入れられたジョブを管理します。このジョブを有効にする前に、次のコンポーザパッケージをインストールする必要がありますaws/aws-sdk-php ~3.0

また、キューに登録されたジョブに遅延を使用する予定の場合、Amazon SQSは最大15分の遅延しかサポートしないことにも注意してください。

iron

このキュードライバは、 Ironを使用して、キューに入れられたジョブを管理します。

redis

このキュードライバは、 Redisのインスタンスを使用して、キューに入れられたジョブを管理します。このキュードライバを使用する前に、Redisのコピーを設定し、次のコンポーザ依存関係をインストールする必要があります: predis/predis ~1.0

beanstalkd

このキュー・ドライバは、 Beanstalkのインスタンスを使用して、キューに入れられたジョブを管理します。このキュードライバを使用する前に、Beanstalkのコピーを設定し、次のコンポーザ依存関係をインストールする必要があります: pda/pheanstalk ~3.0

null

キュードライバとしてnullを指定すると、キューに入れられたジョブはすべて破棄されます。



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow