|
@@ -1,10 +1,8 @@
|
|
package com.persagy.apm.energyalarmstarter.alarmengine.jms;
|
|
package com.persagy.apm.energyalarmstarter.alarmengine.jms;
|
|
|
|
|
|
-import com.persagy.dmp.starter.alarm.communication.mq.model.DmpMessage;
|
|
|
|
-import com.persagy.dmp.starter.alarm.communication.mq.model.OrderStateMessage;
|
|
|
|
-import com.persagy.dmp.starter.alarm.communication.netty.NettyAlarmMsgBaseHandler;
|
|
|
|
-import com.persagy.dmp.starter.alarm.service.OrderStateChangeService;
|
|
|
|
-import com.persagy.dmp.starter.alarm.util.StringUtil;
|
|
|
|
|
|
+import com.persagy.apm.energyalarmstarter.alarmengine.jms.model.DmpMessage;
|
|
|
|
+import com.persagy.apm.energyalarmstarter.alarmengine.netty.NettyAlarmMsgBaseHandler;
|
|
|
|
+import com.persagy.apm.energyalarmstarter.alarmengine.util.StringUtil;
|
|
import com.rabbitmq.client.Channel;
|
|
import com.rabbitmq.client.Channel;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import org.springframework.amqp.core.*;
|
|
import org.springframework.amqp.core.*;
|
|
@@ -15,8 +13,6 @@ import org.springframework.beans.factory.annotation.Value;
|
|
import org.springframework.context.annotation.Bean;
|
|
import org.springframework.context.annotation.Bean;
|
|
import org.springframework.context.annotation.Configuration;
|
|
import org.springframework.context.annotation.Configuration;
|
|
|
|
|
|
-import java.io.IOException;
|
|
|
|
-
|
|
|
|
/**
|
|
/**
|
|
* @description:报警定义消息通知
|
|
* @description:报警定义消息通知
|
|
* @author:LuoGuangyi
|
|
* @author:LuoGuangyi
|
|
@@ -27,9 +23,6 @@ import java.io.IOException;
|
|
@Slf4j
|
|
@Slf4j
|
|
@Configuration
|
|
@Configuration
|
|
public class JmsConfig {
|
|
public class JmsConfig {
|
|
- @Autowired
|
|
|
|
- OrderStateChangeService orderStateChangeService;
|
|
|
|
-
|
|
|
|
/**
|
|
/**
|
|
* NettyAlarmMsgBaseHandler本身不进行ioc注入,这里注入的是他的子类。
|
|
* NettyAlarmMsgBaseHandler本身不进行ioc注入,这里注入的是他的子类。
|
|
* 子类在实际项目中创建,starter中没有实例。
|
|
* 子类在实际项目中创建,starter中没有实例。
|
|
@@ -56,16 +49,6 @@ public class JmsConfig {
|
|
@Value("${dmp.alarm.queue}")
|
|
@Value("${dmp.alarm.queue}")
|
|
private String alarmQueue;
|
|
private String alarmQueue;
|
|
|
|
|
|
- /**
|
|
|
|
- * 工单状态变化exchange, 下一期升级为对接集成框架
|
|
|
|
- */
|
|
|
|
- private String orderStateExchange = "workorder_state_publish_exchange";
|
|
|
|
- /**
|
|
|
|
- * 工单状态变化queue
|
|
|
|
- */
|
|
|
|
- private String orderStateQueue = "order_state_queue";
|
|
|
|
-
|
|
|
|
-
|
|
|
|
@Bean
|
|
@Bean
|
|
public Queue alarmQueue() {
|
|
public Queue alarmQueue() {
|
|
return new Queue(alarmQueue, true);
|
|
return new Queue(alarmQueue, true);
|
|
@@ -81,44 +64,6 @@ public class JmsConfig {
|
|
return BindingBuilder.bind(alarmQueue()).to(alarmExchange()).with(alarmRoutingKey);
|
|
return BindingBuilder.bind(alarmQueue()).to(alarmExchange()).with(alarmRoutingKey);
|
|
}
|
|
}
|
|
|
|
|
|
- @Bean
|
|
|
|
- public FanoutExchange orderStateExchange() {
|
|
|
|
- return new FanoutExchange(orderStateExchange);
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- @Bean
|
|
|
|
- public Queue orderStateQueue() {
|
|
|
|
- return new Queue(orderStateQueue, true);
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- @Bean
|
|
|
|
- public Binding orderStateBinding() {
|
|
|
|
- return BindingBuilder.bind(orderStateQueue()).to(orderStateExchange());
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- @RabbitListener(queues = "order_state_queue") //监听器监听指定的Queue
|
|
|
|
- public void processOrderState(String message, Channel channel, Message msg) {
|
|
|
|
- log.info("============================== Receive:" + message);
|
|
|
|
- try {
|
|
|
|
- OrderStateMessage orderStateMessage = StringUtil.transferItemToDTO(message, OrderStateMessage.class);
|
|
|
|
- log.info("currentThread:{}", Thread.currentThread().getId());
|
|
|
|
- log.info("order_id: {}", orderStateMessage.getOrder_id());
|
|
|
|
- log.info("order_state: {}", orderStateMessage.getOrder_state());
|
|
|
|
- // 根据工单状态消息更新报警记录状态
|
|
|
|
- orderStateChangeService.updateAlarmWhenOrderStateChange(orderStateMessage);
|
|
|
|
- // 手动确认消息已消费
|
|
|
|
- channel.basicAck(msg.getMessageProperties().getDeliveryTag(),false);
|
|
|
|
- } catch (Exception e) {
|
|
|
|
- log.error("工单状态消息消费失败: {}", e.getMessage());
|
|
|
|
- try {
|
|
|
|
- // 将消费失败的消息移除消息队列,避免重复消费
|
|
|
|
- channel.basicReject(msg.getMessageProperties().getDeliveryTag(),false);
|
|
|
|
- } catch (IOException ex) {
|
|
|
|
- log.error("工单状态消息从队列中移除失败,{}", ex.getMessage());
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
@RabbitHandler
|
|
@RabbitHandler
|
|
@RabbitListener(queues = "${dmp.alarm.queue}")
|
|
@RabbitListener(queues = "${dmp.alarm.queue}")
|
|
public void planQueues(String msg, Channel channel, Message message) {
|
|
public void planQueues(String msg, Channel channel, Message message) {
|