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<Machine> 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);
|
}
|
}
|
|
}
|
|
}
|