2017-06-20 22 views
0

私が生成する各メッセージを特定の時間だけ遅延させる必要があります。 私が知っている限り、rabbitmq-delayed-message-exchangeプラグインは私がそれを正確に行うことを可能にしますが、私は、それが明確に拡張されていないという警告を受けました。 (最近スケーリングの問題を修正した更新はありましたか?)各メッセージにカスタム遅延(rabbitmq)を指定しますか?

それで、代わりにTTLとDLQを使用しました。しかし、このアプローチでは、実際のメッセージの代わりに交換を作成する時間を設定します。これは、異なるメッセージに対して異なる時間を設定することができないことを意味します。 私は何かを見逃しましたか?

私の使用例:基本的に私は、予約オブジェクトに指定された特定の時間にクライアントに保存して送り返す必要のあるクライアントから特定の「予定」を受け取る予定です。私は消費者が待っているロジックを実装してはならないように、各メッセージに遅延を指定することでこれを達成したいと思います。

+0

あなたのユースケースについてさらに詳しく説明できますか? –

+0

@AlexBuynyもちろん、質問を更新しました – ThatBrianDude

+0

あなたは、「消費者」に待機ロジックを実装したくないと述べました。 'プロデューサ'に待機ロジックを実装するのはどうでしょうか?それは送信する必要がある予定を継続的に探し、時間が来たら送信します。消費者は仕事を受けて仕事をします。 RabbitMQ側では、私は以下の答えに対するコメントに同意する - 私はRabbitMQでそれをやる方法を知らない。 –

答えて

1

per-queue message TTLを使用し、設定するTTLごとに異なるキューを使用すると、最初は特定のTTLに関連するキーと直接交換してメッセージを公開するのはなぜですか?

これらすべてのキューに対して同じdead letter exchangeを設定すると、消費者のための「最終的な」キューに目的の遅延で終了します。

遅延の可能な値が多すぎる場合はもちろん、それは素晴らしいことではありません。

+0

遅延は絶対に可変で、問題です。 – ThatBrianDude

+0

申し訳ありませんが、これを行う方法が見えません。あなたは50以上の異なる価値を持って働いていると思っていたでしょうか。 1分、5分、30分、1時間、4時間、8時間、12時間、1日、2日、3日、4日、5日、6日、1日の週、2週間、3週間、4週間 – Olivier

+0

遅延は1日の任意の時間で計算されるため、これは最終製品の多くの制限になります。あなたの提案をありがとう! (遅れのプラグインが最近サポートを得ているのか、最近はうまく機能しているのか分かりませんか?) – ThatBrianDude

関連する問題