package cc.mrbird.febs.common.configure;
|
|
import cc.mrbird.febs.rabbit.constants.ExchangeConstants;
|
import cc.mrbird.febs.rabbit.constants.QueueConstants;
|
import cc.mrbird.febs.rabbit.constants.RouteKeyConstants;
|
import cc.mrbird.febs.rabbit.enumerates.RabbitQueueEnum;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.amqp.core.*;
|
import org.springframework.amqp.rabbit.connection.ConnectionFactory;
|
import org.springframework.amqp.rabbit.core.RabbitTemplate;
|
import org.springframework.beans.factory.config.ConfigurableBeanFactory;
|
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Scope;
|
import org.springframework.stereotype.Component;
|
|
import javax.annotation.Resource;
|
|
/**
|
* @author wzy
|
* @date 2021-09-25
|
**/
|
@Slf4j
|
@Configuration
|
public class RabbitConfigure {
|
|
@Resource
|
private ConnectionFactory connectionFactory;
|
|
@Bean
|
@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
|
public RabbitTemplate rabbitTemplate() {
|
|
RabbitTemplate rabbitTemplate = new RabbitTemplate(connectionFactory);
|
// 设置消息确认机制
|
rabbitTemplate.setConfirmCallback((correlationData, ack, cause) -> {
|
if (!ack) {
|
log.error("消息发送失败: {}", cause);
|
}
|
});
|
return rabbitTemplate;
|
}
|
|
@Bean
|
public DirectExchange pcCompanyAddExchange() {
|
return new DirectExchange(RabbitQueueEnum.PC_COMPANY_ADD_ALI.getExchange());
|
}
|
|
@Bean
|
public Queue pcCompanyAddQueue() {
|
return new Queue(RabbitQueueEnum.PC_COMPANY_ADD_ALI.getQueue());
|
}
|
|
@Bean
|
public Binding pcCompanyAddBind() {
|
return BindingBuilder.bind(pcCompanyAddQueue()).to(pcCompanyAddExchange()).with(RabbitQueueEnum.PC_COMPANY_ADD_ALI.getRoute());
|
}
|
}
|