如何搜索/查询符合条件的 SQS 队列元素

How to search for / query an SQS queue element that matches criteria

我想搜索符合特定条件的 SQS 队列的 "first" N 个元素。不必一定是第一个,大概的就好了。

SQS FIFO 队列支持这一点,但这里有一个问题:我想保留 "standard" SQS 继续处理其他元素的方法,而不可见的元素是正在处理(并且还避免了 SQS FIFO 对具有特定条件的元素可以入队的次数的限制)。

本质上,我不需要需要先进先出。我只需要伸手到队列中,获取第一个符合我需求的元素即可。

请注意,由于这些标准是相对动态的,因此动态创建 SQS 队列将 行不通,因为

  1. 这实际上是要花钱的
  2. SQS 队列数量有限制
  3. 在新队列可用之前会有几分钟的延迟

不可能 'search' Amazon SQS 队列中的消息。

ReceiveMessage() 调用将检索一条或多条消息,但无法控制将返回哪些 条消息。

虽然 消息属性 可以附加到消息,但在检索消息时不能指定。

如果您需要先处理特定消息,则需要将它们放入单独的队列。然后,让您的应用在正常队列之前从该队列中读取。