|
|
@@ -0,0 +1,53 @@
|
|
|
+package cn.reghao.autodop.common.mq;
|
|
|
+
|
|
|
+import cn.reghao.autodop.common.mq.protocol.MQMessage;
|
|
|
+import cn.reghao.autodop.common.mq.protocol.machine.MachineMessage;
|
|
|
+import cn.reghao.autodop.common.mq.protocol.machine.MachineOps;
|
|
|
+import cn.reghao.autodop.common.mq.protocol.machine.MachineState;
|
|
|
+import cn.reghao.autodop.common.mq.protocol.MessageType;
|
|
|
+import cn.reghao.autodop.common.utils.data.serializer.JsonConverter;
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.springframework.amqp.core.Message;
|
|
|
+import org.springframework.amqp.core.MessageListener;
|
|
|
+
|
|
|
+/**
|
|
|
+ * 消息分发
|
|
|
+ *
|
|
|
+ * @author reghao
|
|
|
+ * @date 2020-09-04 11:00:22
|
|
|
+ */
|
|
|
+@Slf4j
|
|
|
+public class RabbitConsumer implements MessageListener {
|
|
|
+ private MessageDispatcher messageDispatcher;
|
|
|
+
|
|
|
+ public RabbitConsumer() {
|
|
|
+ this.messageDispatcher = new MachineMessageDispatcher();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onMessage(Message msg) {
|
|
|
+ String body = new String(msg.getBody());
|
|
|
+ try {
|
|
|
+ MQMessage mqMessage = (MQMessage) JsonConverter.jsonToObject(body, MQMessage.class);
|
|
|
+ String msgType = mqMessage.getMsgType();
|
|
|
+ switch (MessageType.valueOf(msgType)) {
|
|
|
+ case machine:
|
|
|
+ MachineMessage machineMessage =
|
|
|
+ (MachineMessage) JsonConverter.jsonToObject(mqMessage.getPayload(), MachineMessage.class);
|
|
|
+ String machineOps = machineMessage.getMachineOps();
|
|
|
+ String message = machineMessage.getMessage();
|
|
|
+ messageDispatcher.dispatch(machineOps, message);
|
|
|
+ break;
|
|
|
+ case app:
|
|
|
+ log.info("msg from app...");
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error(e.getMessage());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ void receive(String queue) {
|
|
|
+ }
|
|
|
+}
|