package com.lyms.cm.job; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import com.lyms.sycn.SycnCallback; import com.lyms.sycn.SycnCenter; import com.lyms.sycn.SycnCenter.Work; import com.lyms.sycn.channel.ChannelData; import com.lyms.util.HttpUtils; import com.lyms.util.JsonUtils; /** *
  • @ClassName: SycnJob *
  • @Description: 同步任务执行器,依赖spring *
  • @author maliang *
  • @date 2017年3月14日 *
  • */ public class SycnTmpJob { private Logger LOG = LoggerFactory.getLogger(getClass()); @Autowired public SycnCenter center; public void excute() { // 拉取远端数据 LOG.debug("执行推送远程数据任务..."); final Work work = center.buildWork(); try { work.pullTmp(new SycnCallback() { @Override public void callBack(Object object) { if (object instanceof ChannelData) { ChannelData model = (ChannelData) object; if (model != null) { // 任务发送执行 String result = HttpUtils.REMOTE.post(model); model = JsonUtils.jsonToBean(result, ChannelData.class); if (model != null && model.getAck()) { work.backPressure(); } } } } }); } catch (Exception e) { LOG.error("同步数据错误 {}", e); work.backPressure(); } } }