1
zhang
昨天 ad46ec101f19c65d1c7ecda38608ea9fac7c9ef1
zy-acs-gateway/src/main/java/com/zy/acs/gateway/listen/MessageListener.java
@@ -2,18 +2,20 @@
import com.alibaba.fastjson.JSON;
import com.zy.acs.common.constant.RedisConstant;
import com.zy.acs.common.domain.AgvCommand;
import com.zy.acs.common.domain.AgvProtocol;
import com.zy.acs.common.utils.RedisSupport;
import com.zy.acs.framework.common.Cools;
import com.zy.acs.gateway.config.SystemProperties;
import com.zy.acs.gateway.constant.ProtocolType;
import com.zy.acs.gateway.constant.RabbitmqConstant;
import com.zy.acs.gateway.domain.AgvPackage;
import com.zy.acs.gateway.job.DispatcherPublisher;
import com.zy.acs.common.utils.RedisSupport;
import com.zy.acs.gateway.utils.ProtocolUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.util.StringUtils;
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
@@ -35,23 +37,30 @@
    @Autowired
    private SystemProperties systemProperties;
    @Autowired
    private RabbitTemplate rabbitTemplate;
    @PostConstruct
    private void start(){
        thread = new Thread(() -> {
            while (!Thread.currentThread().isInterrupted()) {
                AgvProtocol protocol = redis.pop(RedisConstant.AGV_CMD_DOWN_FLAG);
                if (null != protocol){
                AgvProtocol protocol = redis.pop(RedisConstant.AGV_PATH_DOWN_FLAG);
                if (null != protocol) {
                    if (systemProperties.isPrintPacLog()) {
                        log.info("监听器 >>> {}", JSON.toJSONString(protocol));
                    }
                    if (!StringUtils.isEmpty(protocol.getAgvNo())){
                    if (!Cools.isEmpty(protocol.getAgvNo())) {
                        AgvPackage agvPackage = ProtocolUtils.installDownProtocol(protocol);
                        publisher.publish(agvPackage);
                        // 写入队列
                        rabbitTemplate.convertAndSend(RabbitmqConstant.TOPIC_EXCHANGE, RabbitmqConstant.ROUTING_KEY_DOWN.replaceFirst(RabbitmqConstant.SPILT_REGEX, protocol.getAgvNo()).replaceFirst(RabbitmqConstant.SPILT_REGEX, agvPackage.getHeader().getProtocolType().name()), agvPackage.getBody().getMessageBody());
                        publisher.publish(ProtocolUtils.installDownProtocol(protocol));
                    }
                }
                // 间隔
                try {
                    Thread.sleep(1000);
                    Thread.sleep(300);
                } catch (Exception ignore) {}
            }
        });