1

私はいくつかのデータを取得するのに成功した後に特定のエンドポイントを呼び出すよう要求しています。我々は、SNSトピックを使用してSQSキューにポスティングを送信し、それがエンドポイントを呼び出すことを達成しました。 SNS - > SQS - > My Endpoint(プロセスQメッセージ) - >外部Endpointを呼び出してデータを取得します。AWS SQS複数回再試行

ここで、注文が処理された直後にデータが入手できないことがわかったので、30秒ごとに5回試行し続ける必要があります。

これを達成する方法はありますか?

今、キューからのメッセージを処理するエンドポイントが常にエラーを返し、メッセージが再試行されるようにしました。

メッセージが30秒ごとに5回再試行されるように、可視性のタイムアウトを30秒に設定しました。

既存の設定で私が望むことを達成するためのより良い方法はありますか? 助けてください。

+1

SQS自体がもう一度やり直す必要がある場合は、あなたがしたことが唯一のアプローチだと思います。それ以外の場合は、SNSのソースを変更して、「データが使用可能」の場合にのみ通知を送信します。 – kosa

+0

ありがとうございますが、問題は、私は外部エンドポイントへの呼び出しを行うまでデータが利用可能であることを知りません。 – Viki

+2

*私が欲しいものを達成するためのより良い方法はありますか?それは可視性タイムアウトのための実行可能な使用です。私は再試行の間に5分待っているアプリケーションを持っています。 SQSは、各キューが少なくとも1回はすでに受信された12万のメッセージを「唯一」許可され、任意の瞬間に可視性タイムアウトタイマが実行されるように、組み込みの制限が設定されているという事実を考えると、このように使用するように設計されているようです。 –

答えて

0

データが利用可能なときにメッセージを公開し、そのメッセージをトリガとしてのみ使用するのはなぜですか?その後、SQSメッセージは最初に失敗しません。

何らかの理由でそれができない場合(実際にはそうではありませんが、YNK)、 あなたがしたようにエラーを投げて再試行します。それは動作するはずです。

関連する問題