轮询之前从AWS SQS队列中删除一些消息

时间:2019-08-01 13:58:49

标签: amazon-web-services queue amazon-sqs

我有一个Node.js应用程序,该应用程序池化来自AWS SQS队列的消息并处理这些消息。

但是其中一些消息与我的服务无关,它们将被过滤掉并且不会被处理。

我想知道是否可以在收到这些不相关的消息之前从AWS过滤掉这些东西...

例如,如果消息不具有以下属性data.name,则此消息将在到达我的应用程序之前被删除...

无法过滤这些消息,然后再将它们发送到队列(根据我的客户端)。

1 个答案:

答案 0 :(得分:2)

否,不轮询消息本身是不可能的。因此,如果它们满足您的要求,那么您将需要一些其他使用者来轮询消息并将它们返回到队列(不在接收到的删除句柄上调用DeleteMessage),但这在大多数情况下会过分杀伤,具体取决于“好”和“坏”消息,但仍然需要两次处理“好”消息。

更好的方法是设置其他使用者和2个队列。生产者将消息发送到第一个队列,该队列由第一个使用方轮询,其唯一目的是过滤消息并将“良好”消息发送到第二个队列,然后由当前使用方应用程序对其进行轮询。但是,这又要昂贵得多。

如果您无法在将消息发送到队列之前对其进行过滤,则可以在使用的应用程序中对其进行过滤,否则您将不得不为此功能支付一些额外费用。

相关问题