会重新发布的,不会阻塞后面的
通过看spring-amqp的源码知道。这个职责是委托给MessageRecoverer来完成的。
package org.springframework.amqp.rabbit.retry;
import org.springframework.amqp.core.Message;
/**
* @author Dave Syer
*
*/
public interface MessageRecoverer {
/**
* Callback for message that was consumed but failed all retry attempts.
*
* @param message the message to recover
* @param cause the cause of the error
*/
void recover(Message message, Throwable cause);
}
这个接口在spring-amqp中有两个实现,一个是 RejectAndDontRequeueRecoverer 和 RepublishMessageRecoverer,见名知意,有两个策略。前一种是放入死信队列,后一种是重新发布。更详细的机制看这两个实现类的注释会更加的清晰。