当前位置: 首页 > 知识库问答 >
问题:

阿耳忒弥斯:如何在错误时停止使用消息?

左恺
2023-03-14
<addresses>
    <address name="SimplePointToPoint">
        <anycast>
            <queue name="SimplePointToPoint"/>
        </anycast>
    </address>
</addresses>
<address-settings>
    <address-setting match="SimplePointToPoint">
        <max-delivery-attempts>-1</max-delivery-attempts>
    </address-setting>
</address-settings>
@JmsListener(destination = "SimplePointToPoint")
public void consumeMessage(Message<String> message) {
    if (message.getPayload().contains("error"))
        throw new RuntimeException();

    log.info("received message: {}", message.getPayload());
}

当发送消息1消息2错误消息3时,我希望使用者处理消息1并永远重试消息2错误消息3消息2错误成功使用之前不应处理。实际发生的情况是,message3在两次重试之间被消耗。如何改变这种行为?有什么想法吗?

共有1个答案

冯文彬
2023-03-14

ActiveMQ预取默认为1000。

请参阅文档。

可以在ActiveMQConnectionFactory或ActiveMQConnection上指定ActiveMQPrefetchPolicy的实例。这允许您配置所有单独的预取值;因为每一种不同的服务质量都有不同的价值。例如。

 类似资料:
  • 说明:我有一个消费者和生产者,我希望看到当我将消息从消费者端推到JMS(ARTEMIS)时,如果ARTEMIS关闭了,那么我的消息不会被ARTEMIS接受。 向前看。请帮忙。

  • 问题内容: 我在OpenCV中有一条错误消息正在打印,即使我在它周围进行了除外捕获也是如此。 链接问题的解决方案建议使用重定向功能,但是此注释表明该功能在Python forOpenCV中不存在。 如何停止打印OpenCV错误消息,同时仍然允许我完全打印所需的内容? 问题答案: 在撰写此答案(OpenCV 3.4.1是最新发布的版本)时,没有办法只过滤默认错误处理程序的输出(我可以想到),也没有办

  • 问题内容: 有没有一种方法可以优雅地停止和及其相关联的。 我正在努力实现的目标。 停止使用消息。 优雅地停下来。 等待长期运行的消费者,并在完成后确认。 我可以停止使用,但是长期运行的使用者不会成功完成,并且一旦ListenerContainer恢复后,已处理的消息也不会被确认,因此将再次进行处理。 输出量 邮件已处理,但未确认。 我也许可以使用来实现正常关机,但是是否可以验证被取消的使用者是否已

  • 是否有一种方法/设置可以使SBT在第一个子项目遇到编译错误时立即停止并退出?

  • 我正在使用python创建一个控制Tkinter窗口的类对象。我的代码如下所示: 我希望能够启动一个类的实例,然后像这样停止它: 一切正常,窗口在上成功创建,单击按钮并执行时窗口消失。问题是主循环继续运行。我必须使用Ctrl C手动杀死程序,它显示它在。 如果我只是在一个普通的文件中而不是在一个类中执行所有tkinter代码,那么一切都是一样的,但是当我在root上调用destroy时,mainl

  • 我有一个程序,它每秒钟响一次,直到停止。问题是,在我按下“开始”并发出嘟嘟声后,我无法单击“停止”按钮,因为窗口冻结。欢迎任何帮助。