2017-04-30 13 views
2

処理に時間がかかりすぎる場合、RabbitMQでメッセージを破棄する方法はありますか?RabbitMQ - 処理に時間がかかりすぎる場合はメッセージを破棄します

たとえば、メールキューがあり、コンシューマスクリプトがメールを送信するのに時間がかかりすぎる場合は、メッセージを破棄して(デッドレター交換に入れて)、キュー内の次のアイテムを選択します。

enter image description here

私はx-message-ttlの承知していますが、メッセージが処理さばかり開始されると、それは無視されるので、それはここでは適用されません。

答えて

0

私はあなたがブローカーにしたいことをする方法はないと思う。デッドレター交換にメッセージを移動するには、あなたの状況では不可能と思われるメッセージにrejectまたはnackの返信を送信する必要があります。

たとえば、EmailSenderサービスとEmailGeneratorサービスがあります。 この方法で整理できます:

EmailGeneratorはメールでメッセージを送信します。

EmailSenderを受信します。

EmailSenderは、EmailGeneratorsent confirmationメッセージを送信します。

EmailGeneratorこれまでに正常に送信された状態を追跡します。 EmailGeneratorがX秒以内に特定の電子メールのメッセージsent confirmationを受信して​​いない場合は、対応する電子メールメッセージを再送信します。

関連する問題