2017-10-03 23 views
0

messagegroupidパラメータを使用して、必要なIDでタグ付けされたキューメッセージのみを受信する方法を教えてください。SQS FIFO MessageGroupIdを使用してメッセージを受信

私は以下の行を検索するために使用しようとしていますが、他のグループIDからのすべてのキューメッセージも常に受信します。それを行うための正しい方法はどうあるべきか

List<Message> messages = sqs.receiveMessage(receiveMessageRequest.withAttributeNames("MessageGroupId")).getMessages();

答えて

0

ReceiveMessageRequestは、メッセージ属性に基づくフィルタリングには使用されません。 ReceiveMessageRequest.html.withAttributeNames()のドキュメントを見ると、

各メッセージとともに返される必要がある属性のリスト。

一般に、SQSから返されたメッセージはフィルタできません。あなたは数を制限することができますが、例えば、「このパターンに合ったすべてのメッセージを私に渡してください」と言うことはできません。

+0

返信いただきありがとうございます! これは、別のメッセージグループIDを持つメッセージを処理するために2つのキューを持つ必要があることを意味しますか?このようにして、私は他のグループidのためのメッセージを受け取らないでしょう。 – JustStarted

+0

@JustStarted - これは問題の非常に簡単な解決策になります。一般的には、キューを簡単に作成でき、データを分割することができるため、設計が簡単になります。 – stdunbar

関連する問題