1

私はSQSでリクエストをキューに入れて処理しようとしています。私は、メッセージが別のボックスからメッセージが追加されたときにSQSからhttp投稿を自動的に取得する弾力のあるbeanstalk上のNode.JSワーカーを使用して設定しました。Amazon SQSが私のワーカーインスタンスに完全なメッセージを提供していません

問題は、キューからメッセージを削除するために必要なすべてのデータをhttp投稿から取得できません。私が見る唯一のデータは、身体に自分が入力したメッセージデータですが、MessageIdやReceiptHandleはありません。

私は手動でSQS.receiveMessage(queuerurl、コールバック)を呼び出すときにこれらの属性を取得できますが、自動httpポスティングが設定されていない場合に限ります。

ワーカーにSQSを送信すると、メッセージはすぐにキューに入り、その後、SQS.receiveMessage(queuerurl、コールバック)を使用してメッセージが通過するのを防ぐ「飛行中」の状態になります。

誰も私がここで行方不明を説明することはできますか?

私はSQSが提供する「自動メッセージ送信」を誤解していますか?助けのための

おかげで

答えて

2

Elastic Beanstalkでの労働者はSQSからメッセージを引き出し、HTTPを経由して、あなたのコードにこれらのメッセージを送信、それらのサービスを提供しています。 SQS自体はここで何も特別なことをしていません。これは、メッセージのためにSQSをポーリングすることを管理し、処理されたメッセージを削除するBeanstalkワーカーのサービスです。 the documentationから

:ワーカー環境でのアプリケーションは、受信した、正常に が要求を処理したことを認識するために200 OK レスポンスを返す

は、デーモンが SQSキューにDeleteMessageコールを送信メッセージはキューから削除されます。

+0

本当にありがとうございます。私の間違いは、デーモンが私が知っていたはずのものではないと仮定していました! – AIntel

関連する問題