我有一个Node.js应用程序,它从AWS队列中汇集消息并处理这些消息。
但是,其中一些消息与我的服务无关,它们将被过滤掉而不被处理。
我想知道在收到这些无关的消息之前,我是否可以从AWS中过滤这些信息.
例如,如果消息没有以下属性data.name,则在到达我的应用程序之前将删除此消息.
在将这些消息发送到队列之前对它们进行过滤是不可能的(根据我的客户端)。
发布于 2019-08-01 14:14:03
不,如果不轮询消息本身,这是不可能的。因此,如果消息满足您的要求,则需要一些其他使用者轮询消息并将它们返回到队列中(而不是在接收到的删除句柄上调用DeleteMessage ),但在大多数情况下,这将是过度的,这取决于“好”和“坏”消息的比例,但您仍然需要处理两次“好”消息。
更好的方法是设置额外的使用者和两个队列。生产者将消息发送到第一个队列,该队列由第一个使用者轮询,第一个用户的唯一目的是过滤消息并向第二个队列发送“好”消息,然后第二个队列将由当前的使用者应用程序轮询。但同样,这样做的代价要高得多。
如果您无法在将消息发送到队列之前过滤它们,那么在您的消费应用程序中过滤它们,否则您将不得不为这个额外的功能支付一些额外的费用。
https://stackoverflow.com/questions/57310784
复制相似问题