このコードを考えると:
@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 では同じではありません。