57 lines
1.9 KiB
Java
57 lines
1.9 KiB
Java
|
|
package com.newyetai.mq.consumer;
|
|||
|
|
|
|||
|
|
import com.google.common.collect.Lists;
|
|||
|
|
import com.newyetai.common.constant.CommonConstants;
|
|||
|
|
import com.newyetai.common.util.EnvironmentUtils;
|
|||
|
|
import com.newyetai.mq.config.ExchangeManager;
|
|||
|
|
import com.newyetai.mq.config.QueueManager;
|
|||
|
|
import com.newyetai.mq.config.RabbitCustomProperties;
|
|||
|
|
import com.newyetai.mq.constant.MqConstant;
|
|||
|
|
import com.newyetai.mq.consumer.handler.IMqHandler;
|
|||
|
|
import org.springframework.beans.factory.InitializingBean;
|
|||
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|||
|
|
|
|||
|
|
import java.util.List;
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 初始化消息消费处理类,初始queue/binding
|
|||
|
|
*
|
|||
|
|
* @author sr on 2020-07-24
|
|||
|
|
*/
|
|||
|
|
public class InitHandler implements InitializingBean {
|
|||
|
|
|
|||
|
|
@Autowired(required = false)
|
|||
|
|
private List<IMqHandler<?>> handlers = Lists.newArrayList();
|
|||
|
|
|
|||
|
|
@Autowired
|
|||
|
|
private QueueManager queueManager;
|
|||
|
|
|
|||
|
|
@Autowired
|
|||
|
|
private ExchangeManager exchangeManager;
|
|||
|
|
|
|||
|
|
@Autowired
|
|||
|
|
private RabbitCustomProperties rabbitCustomProperties;
|
|||
|
|
|
|||
|
|
@Override
|
|||
|
|
public void afterPropertiesSet() throws Exception {
|
|||
|
|
String applicationName = EnvironmentUtils.getApplicationName();
|
|||
|
|
handlers.forEach(handler -> {
|
|||
|
|
String routingKey = handler.getRoutingKey();
|
|||
|
|
String queueName = handler.getQueueName();
|
|||
|
|
// 初始化binding
|
|||
|
|
if (queueName == null) {
|
|||
|
|
queueName = String.join(CommonConstants.UNDERLINE, applicationName,
|
|||
|
|
EnvironmentUtils.getProfile(), routingKey);
|
|||
|
|
if (handler.isBroadcast()) {
|
|||
|
|
// queueName = String.join(CommonConstants.UNDERLINE, queueName,rabbitCustomProperties.getBroadcastId());
|
|||
|
|
String nacosDiscoveryIp = EnvironmentUtils.getProperty(MqConstant.NACOS_DISCOVERY_IP);
|
|||
|
|
queueName = String.join(CommonConstants.UNDERLINE, queueName, nacosDiscoveryIp);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
queueManager.addQueueAndRoutingKey(
|
|||
|
|
exchangeManager.getExchangeByType(handler.getExchangeType()), queueName, routingKey);
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|