鉴于此代码:
@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 来说并不相同。