Quarkus / Smallrye反应性消息传递-消息重新交付

时间:2020-02-20 09:03:35

标签: quarkus smallrye-reactive-messaging

我目前正在研究Quarkus中的Smallrye Reactive Messaging集成。乍一看,发送和接收消息确实非常简单,优雅。

但是我没有发现的一件事是:如何处理邮件的重新发送?

示例:我们收到一条消息,并尝试对其进行处理。发生某些异常(例如,数据库不可用或乐观锁异常等)。 在这种情况下,我将引发异常,以便不确认该消息。但是目前我看不到如何重新发送邮件。

我建立了一个小的虚拟项目来对此进行测试:

  • Quarkus
  • ActiveMQ Artemis
  • (通过Artemis控制台)将消息发送到队列中
    -队列配置为max reelivery = 3
  • 使用Quarkus / Smallrye反应消息@传入注释接收消息
  • 在@Incoming方法中引发异常
    ->消息已从Artemis队列中删除
    -> @Incoming方法仅被调用一次

如果我关闭Quarkus App,则可以在Artemis队列中再次看到该消息,并且重新传递的标志设置为true。

但是我找不到如何在Smallrye反应消息中管理/配置重新交付的方法,以便该层处理消息的重新交付n次,并在最大重试次数之后将消息放入DLQ中。

有什么办法吗?

0 个答案:

没有答案