私は現在、複数サーバーのLaravel設定を持っています。負荷分散され、データベースを共有する複数のサーバーがあります。同じキューにある複数のマシンのLaravelキューリスナー
各インスタンスもキューリスナーを実行しています。私は仕事の2種類派遣することができるようにしたい。(例えばなど、モデルを更新し、電子メールを送信)
- 一度だけ実行されたジョブを
- ALLキューリスナー上で実行されたジョブ(例:ファイルシステムからファイルを削除してください)
私が最初に実装するのは簡単ですが、2番目の実装方法はわかりません。何か案は?
キューにスーパーバイザを使用していますか。キューにデータベースドライバを使用していますか? – Kyslik
スーパーバイザとデータベースドライバの使用。 RedisまたはSQSのようなものを使用して開く – nothingtosee
これにはキューを使用しないでください。使用するマシンごとに特別なキュー(名前)を作成する必要があります(サーバーのプロビジョニングの問題により、 。あなたはほとんどの場合、ジョブを実行するために "信号"を他のマシンに伝播する必要のある1つのマスターマシンで終わるでしょう。共有データベースを活用できます。サーバー数が少ない場合は、名前付きキューを使用します。 – Kyslik