gpt4 book ai didi

overriding - ActiveMQ 覆盖预定消息

转载 作者:行者123 更新时间:2023-12-03 18:16:55 25 4
gpt4 key购买 nike

我正在尝试使用 Active MQ 覆盖消息来实现延迟队列。

每条消息都计划延迟 x(比如 60 秒)传递

如果再次收到相同的消息,它应该覆盖之前的消息。

所以即使我在 x 秒内收到 10 条消息。只应处理一条消息。

有干净的方法来完成这个吗?

最佳答案

这个问题有两个部分需要分别解决:

可以在 ActiveMQ 中延迟消息吗?

是 - 请参阅 Delay and Schedule Message Delivery .你需要设置 <broker ... schedulerSupport="true">在您的 ActiveMQ 配置中,以及设置 AMQ_SCHEDULED_DELAY JMS 消息的属性,说明您希望消息延迟多长时间(在您的情况下为 10000)。

有什么方法可以防止同一消息被多次使用?

是的,但这是一个应用程序问题,而不是 ActiveMQ 问题。它通常被称为重复数据删除或幂等消费。如果您只有一个消费者,最简单的方法是跟踪 map 中收到的消息,并检查该 map 是否收到消息。它已被看到,丢弃。

对于您在不同机器上有多个消费者的更复杂的用例,或者您希望该状态在应用程序重启后继续存在,您将需要在数据库中保留一个消息表,并每次查询它。

如果有帮助,请为这个答案投票,因为它会鼓励人们帮助您。

关于overriding - ActiveMQ 覆盖预定消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17843682/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com