package com.zy.acs.hex.config;
|
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.amqp.rabbit.connection.CachingConnectionFactory;
|
import org.springframework.amqp.rabbit.core.RabbitTemplate;
|
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Configuration;
|
|
@Slf4j
|
@Configuration
|
public class RabbitConfig {
|
|
@Bean
|
public RabbitTemplate rabbitTemplate(CachingConnectionFactory connectionFactory) {
|
RabbitTemplate rabbitTemplate = new RabbitTemplate(connectionFactory);
|
rabbitTemplate.setConfirmCallback((correlationData, ack, cause) -> {
|
if (ack) {
|
log.info("消息成功发送到Exchange");
|
} else {
|
log.info("消息发送失败:" + cause);
|
}
|
});
|
// 也可以设置返回类型为mandatory,这样当消息无法路由到任何队列时,会返回给生产者一个Basic.Return。
|
rabbitTemplate.setMandatory(true);
|
rabbitTemplate.setReturnCallback((message, replyCode, replyText, exchange, routingKey) -> {
|
log.info("消息无法路由到队列: " + replyText);
|
});
|
return rabbitTemplate;
|
}
|
|
}
|