2016-12-25 13 views
4

私はLaravel 5プロジェクトを持っています。これはマルチテナントプロジェクトなので、複数のデータベースを持つ1つのフォルダプロジェクトがあります。複数のデータベースを持つlaravelキューを実行中

php artisan queue:listenを使用すると、現在のデータベース設定でのみ動作します。 databaseキュードライバを使用するので、各テナントには独自の通知テーブルがあります。すべてのデータベースジョブをチェックするようにキューリスナーを設定するにはどうすればよいですか?

答えて

4

databaseドライバを引き続き使用するには、キューに登録されたすべてのジョブと失敗したジョブが含まれている別のデータベースを設定することをお勧めします。

コンフィグレーションに含まれていないか、ドキュメントに記載されていますが、コードを見てからconnectionパラメータをキューコンフィグレーションに追加できるように見えます。その接続によって指定されたデータベースあなたのconfig/database.php中のSO

、キュー・データベース用の新しい接続を定義:あなたの新しい接続を使用するようにデータベースのキューを教えて、あなたのconfig/queue.phpで、その後

'connections' => [ 
    // your existing connections 

    'queue' => [ 
     'driver' => 'mysql', 
     'database' => 'your-queue-database', 
     // rest of connection information (host, port, etc) 
    ], 
], 

を:

'connections' => [ 
    'database' => [ 
     'driver' => 'database', 
     'connection' => 'queue', // connection name from database config 
     'table' => 'jobs', 
     'queue' => 'default', 
     'retry_after' => 90, 
    ], 
] 

他のオプションは別のキュードライバに移動することです。 redis、sqs、またはbeanstalkを設定します。

+0

こんにちは、両方の仕事がありますが、 'redis'を使って現在の保留中のジョブや' database'のような失敗したジョブを見る方法を教えてください。私は何か間違っているか、または期待どおりに仕事していないことが分かっていますか? btw、私はlaravel forgeを使ってサーバーをセットアップします。 – martiendt

+0

@martiendtどのタイプのキューを使用しても、失敗したジョブは、キューワーカーが許可した最大試行回数を超えたときにデータベースの 'failed_jobs'テーブルに報告されます。 – patricus

+0

私はredisを使用することを選択したとき、私は自分のキューデータベースもセットアップする必要がありますか?大丈夫です@patricus私はそれを試してみましょう – martiendt

関連する問題