package com.qianwen.mdc.listener; import java.util.List; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import com.qianwen.mdc.collector.CollectorHelper; import com.qianwen.mdc.collector.DataCollector; import com.qianwen.mdc.collector.moxa.MoxaCollector; import com.qianwen.mdc.domain.Machine; import com.qianwen.mdc.domain.MachineProtocol; import com.qianwen.mdc.mapper.MachineMapper; import com.qianwen.mdc.mapper.MachineProtocolMapper; @Component public class CollectTask implements Runnable{ private static final Logger logger = LoggerFactory.getLogger(CollectTask.class); @Autowired private CollectorHelper collectorHelper; @Autowired private MachineMapper machineMapper; @Autowired private MachineProtocolMapper protocolMapper; @Override public void run() { //查询所有的机器,并且找出合适的collector交给collect处理 List machines = machineMapper.collectableMachines(); MachineProtocol protocol; for(Machine machine : machines) { protocol = protocolMapper.selectById(machine.getProtocolId()); try { DataCollector collector = collectorHelper.getCollector(protocol); collector.collect(machine); }catch(Exception ex) { logger.error("采集设备信息失败,machineId={}",machine.getId(),ex); } } } }