人気のPHP WEBアプリケーションフレームワークLaravelのTips。 (Laravelアプリの初期化)composer create-project laravel/laravel my-app

Laravel QUEUE_CONNECTION=sync について

Laravel QUEUE_CONNECTION=sync について

QUEUE_CONNECTION=sync は、Laravelのキュー接続設定で、ジョブを同期的に実行するための設定です

設定の仕組み

config/queue.phpで、デフォルトのキュー接続がQUEUE_CONNECTION環境変数から読み込まれます。 syncドライバーは利用可能な接続の一つとして定義されています

syncドライバーの特徴

syncドライバーを使用すると、キューに追加されたジョブは即座に同期的に実行されます。つまり、バックグラウンドで非同期に処理されるのではなく、ジョブがディスパッチされた時点でその場で実行されます。

使用場面

テスト環境

.env.exampleではデフォルトでQUEUE_CONNECTION=databaseが設定されていますが、テスト実行時にはsyncが使用されます。これにより、テスト中にキューワーカーを起動する必要がなく、ジョブが即座に実行されるため、テストが簡潔になります。

開発環境

開発中にキューの動作をデバッグする際、syncを使用することでジョブの実行フローを追跡しやすくなります

他のキュードライバーとの比較

Laravelは以下のキュードライバーをサポートしています

  • sync: 同期実行
  • database: データベースを使用した非同期実行
  • redis: Redisを使用した非同期実行
  • beanstalkd: Beanstalkdを使用した非同期実行
  • sqs: Amazon SQSを使用した非同期実行
  • deferred: 遅延実行
  • failover: フェイルオーバー対応
  • null: ジョブを破棄

本番環境ではsyncドライバーは推奨されません。 本番環境ではdatabaseredissqsなどの非同期ドライバーを使用することで、アプリケーションのレスポンス時間を改善できます

No.2692
11/25 17:48

edit