我正在将使用SpringAMQP的项目迁移到使用带有rabbitmq的SpringCloud流的项目。
在我的旧项目中,当使用@rabbitlistener处理消息时发生异常时,引发了该异常。如果有一个死信队列被绑定,异常仍然被抛出(只有一次,如果有重试,我猜是最后一次)。这对于日志记录非常有用。
在SpringCloud中,如果您定义属性,@streamlistener有一个死信队列机制:
spring.cloud.stream.bindings.input1.destination=dest1
spring.cloud.stream.rabbit.bindings.input1.consumer.auto-bind-dlq=true
spring.cloud.stream.rabbit.bindings.input1.consumer.republishToDlq=true
但是如果你有这样的方法(只是一个例子):
@StreamListener("input1")
public void process(String message){
System.out.println("Trying...");
throw new RuntimeException();
}
日志是:
Trying...
Trying...
Trying...
(end of log, no exception thrown)
是否有任何方法可以引发异常(仅在上次重试时)?
谢谢!