CrawlerFlowUploadJob.java 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. package com.yihu.hos.service;
  2. import com.yihu.hos.common.Services;
  3. import com.yihu.hos.crawler.service.CrawlerFlowManager;
  4. import com.yihu.hos.datacollect.model.RsJobConfig;
  5. import com.yihu.hos.datacollect.service.intf.IDatacollectManager;
  6. import com.yihu.hos.web.framework.model.DataGridResult;
  7. import com.yihu.hos.core.datatype.DateUtil;
  8. import com.yihu.hos.web.framework.util.springutil.SpringBeanUtil;
  9. import org.apache.logging.log4j.LogManager;
  10. import org.apache.logging.log4j.Logger;
  11. import java.util.Date;
  12. import java.util.HashMap;
  13. import java.util.Map;
  14. import java.util.UUID;
  15. /**
  16. * 任务编排任务执行
  17. *
  18. * Created by chenyingjie on 16/7/14.
  19. */
  20. public class CrawlerFlowUploadJob implements IBaseJob {
  21. private static Logger logger = LogManager.getLogger(CrawlerFlowUploadJob.class);
  22. @Override
  23. public void execute(String jobId) throws Exception {
  24. String random = UUID.randomUUID().toString();
  25. logger.info("任务编排——档案采集上传开始,流水号:" + random + ",jobId:"+jobId);
  26. IDatacollectManager datacollect = SpringBeanUtil.getService(Services.Datacollect);
  27. RsJobConfig job = datacollect.getJobById(jobId);
  28. Map<String, Object> condition = new HashMap<>();
  29. Date begin = job.getRepeatStartTime();
  30. Date end = job.getRepeatEndTime();
  31. if (!job.getJobType().equals("0")) {
  32. //调整截止时间,当前时间-偏移量
  33. end = DateUtil.addDate(-job.getDelayTime(), DateUtil.getSysDateTime());
  34. if ((end.getTime() - begin.getTime()) <= 0) {
  35. return; //结束时间小于开始时间时,不获取
  36. }
  37. }
  38. condition.put("beginDate", begin);
  39. condition.put("endDate", end);
  40. DataGridResult result = datacollect.getJobDatasetByJobId(jobId);
  41. CrawlerFlowManager crawlerFlowManager = new CrawlerFlowManager(result.getDetailModelList(), job.getSchemeVersion());
  42. String message = crawlerFlowManager.dataCrawler(condition);
  43. if (!job.getJobType().equals("0")) {
  44. job.setRepeatStartTime(end);
  45. job.setRepeatEndTime(DateUtil.formatYMDToYMDHMS(DateUtil.getSysDateTime().toString()));
  46. }
  47. datacollect.updateJob(job);
  48. logger.info("任务编排——档案采集上传结束,流水号:" + random + ",jobId:" + jobId + ",message:" + message);
  49. return;
  50. }
  51. }