1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- package cn.cslg.pas.common.config;
- import org.springframework.amqp.core.*;
- import org.springframework.amqp.rabbit.connection.CachingConnectionFactory;
- import org.springframework.amqp.rabbit.connection.CorrelationData;
- import org.springframework.amqp.rabbit.core.RabbitTemplate;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.beans.factory.annotation.Value;
- import org.springframework.context.annotation.Bean;
- import org.springframework.stereotype.Component;
- @Component
- public class RabbitMQConfig {
- // private static final Logger LOGGER= LoggerFactory.getLogger(RabbitMQConfig.class);
- @Value("${queueName}")
- private String queueName;
- @Autowired
- private CachingConnectionFactory cachingConnectionFactory;
- // @Autowired
- // private IMailLogService mailLogService;
- @Bean
- public RabbitTemplate rabbitTemplate() {
- RabbitTemplate rabbitTemplate = new RabbitTemplate(cachingConnectionFactory);
- rabbitTemplate.setConfirmCallback(new RabbitTemplate.ConfirmCallback() {
- /**
- * 消息确认回调
- * @param data 消息唯一标识
- * @param ack 确认结果
- * @param cause 失败原因
- */
- @Override
- public void confirm(CorrelationData data, boolean ack, String cause) {
- String msgId = data.getId();
- if (ack) {
- // LOGGER.info("{}======>消息发送成功",msgId);
- // mailLogService.update(new UpdateWrapper<MailLog>()
- // .set("status",MailConstants.SUCCESS)
- // .eq("msgId",msgId));
- } else {
- // LOGGER.error("{}======>消息发送失败",msgId);
- }
- }
- });
- rabbitTemplate.setReturnsCallback(new RabbitTemplate.ReturnsCallback() {
- @Override
- public void returnedMessage(ReturnedMessage returnedMessage) {
- // LOGGER.error("{}======>消息发送queue时失败",message.getBody());
- }
- });
- return rabbitTemplate;
- }
- @Bean
- public Queue queue() {
- return new Queue(queueName);
- }
- @Bean
- public DirectExchange directExchange() {
- return new DirectExchange(MailConstants.MAIL_EXCHANGE_NAME);
- }
- @Bean
- public Binding binding() {
- return BindingBuilder.bind(queue()).to(directExchange()).with(MailConstants.MAIL_ROUTING_KEY_NAME);
- }
- }
|