微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

即使消费者抛出异常,Micronaut 也会消费消息

如何解决即使消费者抛出异常,Micronaut 也会消费消息

鉴于此代码

@Slf4j
@JMSListener(CONNECTION_FACTORY_BEAN_NAME)
@requiredArgsConstructor
public class IssueNewEventHandler {

    @Transactional
    @Queue(value = "${queue}",serializer = "sqsSerializer",concurrency = "1-1")
    public void issueNewEvent(@Body Event event) {
        log.info("retrieved message to issue {}",event);
        if (1==1)
            throw new NullPointerException("rollback");
        log.info("completed message to issue {}",event);
    }

}

该队列将消耗消息,并且不会重试,即使存在 @Transactional 属性也是如此。这个功能还在 Micronaut 中待定吗?

我如何确保如果发生异常,消息会按原样重试/放入死信队列。

在 Spring Boot 中,@Transactional 属性确保消息按应有的方式重试,但 Micronaut 不一样。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。