Queues
Overview
このガイドでは、Laravel Queue のデータベースとしてMongoDBを使用する方法を学習できます。 Lalavel Queue を使用すると、バックグラウンドで処理されるキューに入れられたジョブを作成できます。
構成
Lalavel Queue のデータベースとして MongoDB を使用するには、アプリケーションの config/queue.php
ファイルのドライバーを変更します。
'connections' => [ 'database' => [ 'driver' => 'mongodb', // You can also specify your jobs-specific database // in the config/database.php file 'connection' => 'mongodb', 'table' => 'jobs', 'queue' => 'default', // Optional setting // 'retry_after' => 60, ], ],
次の表では、キューの動作を構成するために指定できるプロパティについて説明します。
設定 | 説明 |
---|---|
driver | 使用する必要があるキュー ドライバー。 このプロパティの値は mongodb である必要があります。 |
connection | ジョブを保存するために使用されるデータベース接続。 mongodb 接続である必要があります。 接続が指定されていない場合、ドライバーはデフォルトの接続を使用します。 |
table | 処理するジョブを保存する MongoDB コレクションの必須名前。 |
queue | 必須キューの名前。 |
retry_after | 処理中のジョブを再試行する前にキュー接続が待機する時間を指定します。 値はデフォルトで 60 です。 |
MongoDBを使用して 失敗したジョブ を処理するには、アプリケーションのfailed
config/queue.php
ファイルに エントリを作成し、データベースとコレクションを指定します。
'failed' => [ 'driver' => 'mongodb', 'database' => 'mongodb', 'table' => 'failed_jobs', ],
次の表では、失敗したジョブの処理方法を構成するために指定できるプロパティについて説明します。
設定 | 説明 |
---|---|
driver | 使用する必要があるキュー ドライバー。 このプロパティの値は mongodb である必要があります。 |
database | ジョブを保存するために使用されるデータベース接続。 mongodb 接続である必要があります。 接続が指定されていない場合、ドライバーはデフォルトの接続を使用します。 |
table | 失敗したジョブを保存する MongoDB コレクションの名前。 値はデフォルトで failed_jobs です。 |
失敗したジョブを登録するには、Lambda のデフォルトの失敗したジョブプロバイダーを使用できます。詳細については、キューに関する Lambda ドキュメントの「 失敗したジョブの処理 」を参照してください。
ジョブバッチ
ジョブのバッチ処理は、キューからジョブを実行する前、実行中、および実行中にジョブと関連するアクションのバッチを実行できるラベルの機能です。 この機能について詳しくは、次を参照してください: ジョブバッチ Lambda のドキュメント。
MongoDB では、ジョブバッチを使用する前に指定されたコレクションを作成する必要はありません。 job_batches
コレクションは、完了率などのジョブ バッチに関するメタデータを保存するために自動的に作成されます。
ジョブ バッチを有効にするには、次のようにアプリケーションのconfig/queue.php
ファイルにbatching
エントリを作成します。
'batching' => [ 'driver' => 'mongodb', 'database' => 'mongodb', 'table' => 'job_batches', ],
次の表では、ジョブバッチを構成するために指定できるプロパティについて説明します。
設定 | 説明 |
---|---|
driver | 使用する必要があるキュー ドライバー。 このプロパティの値は mongodb である必要があります。 |
database | ジョブを保存するために使用されるデータベース接続。 mongodb 接続である必要があります。 接続が指定されていない場合、ドライバーはデフォルトの接続を使用します。 |
table | ジョブ バッチを保存する MongoDB コレクションの名前。 値はデフォルトで job_batches です。 |
次に、アプリケーションのconfig/app.php
ファイルにサービス プロバイダーを追加します。
Lambda 統合により、ジョブバッチ用のサービス プロバイダーとして MongoDB\Laravel\MongoDBBusServiceProvider::class
クラスが自動的に提供されます。