我有一个用例,其中我有两个SQS队列,每个队列都收到消息。但条件是,如果我在第一个队列中获得消息,我将停止从第二个队列读取消息,并优先处理第一个队列消息。我可以只用一个SQS计票器来处理这个问题吗?
问题陈述:我经常在第一个队列中得到消息,但它们是重要的消息。但我不断地在第二个队列中获取消息。因此,如果轮询器正在处理第二个队列的消息,并且突然在第一个队列中出现一个新消息,那么在处理第二个队列的消息之后,它应该跳到第一个队列,并从那里开始接收消息,直到第一个队列为空。
有解决办法吗?
发布于 2020-01-30 02:33:20
这是处理优先级消息的好方法。
如果您的只有一个用户(您称它为'poller'),那么它应该:
从队列为空的优先级queue
检索和处理消息。
您需要将此行为编码到您的消费者中。没有内置的功能可以从多个队列中轮询。
如果您是运行多个使用者,那么您可能希望让每个使用者执行上面的操作,或者您可以将其中的一部分分配给来自特定队列的进程。例如:
H 125您可以根据典型的数据卷H 228>F 229调整消费者的相对数量E 227>)。
或者,您可以决定使用使用AWS函数来处理消息。在这种情况下,队列将被并行处理,但不给予一个队列相对于另一个队列的优先级。在这种情况下分配优先级的唯一方法是,为每个队列使用的Lambda函数分配不同的并发值。这将使优先级队列在达到容量限制时具有更多的并发性。
https://stackoverflow.com/questions/59977251
复制相似问题