CommonJob.java 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. package com.usky.rule.jobs;
  2. import com.usky.rule.enums.TriggerTypeEnum;
  3. import com.usky.rule.vo.action.RuleEngineAction;
  4. import com.usky.rule.vo.log.RuleEngineDetailLog;
  5. import com.usky.rule.listeners.CommonListener;
  6. import com.usky.rule.util.RuleEngineUtil;
  7. import java.time.LocalDateTime;
  8. import java.util.ArrayList;
  9. import java.util.List;
  10. import javax.annotation.Resource;
  11. import lombok.extern.slf4j.Slf4j;
  12. import org.quartz.CronTrigger;
  13. import org.quartz.DisallowConcurrentExecution;
  14. import org.quartz.Job;
  15. import org.quartz.JobDataMap;
  16. import org.quartz.JobExecutionContext;
  17. @DisallowConcurrentExecution
  18. @Slf4j
  19. public class CommonJob implements Job {
  20. @Resource
  21. private RuleEngineUtil ruleEngineUtil;
  22. public CommonJob() {
  23. }
  24. public void execute(JobExecutionContext context) {
  25. JobDataMap dataMap = context.getJobDetail().getJobDataMap();
  26. Long ruleEngineId = (Long)dataMap.get("ruleEngineId");
  27. Long projectId = (Long)dataMap.get("projectId");
  28. Long spaceId = (Long)dataMap.get("spaceId");
  29. List<RuleEngineAction> actions = (List)dataMap.get("actions");
  30. RuleEngineDetailLog detail = (RuleEngineDetailLog)context.get("detail");
  31. if (detail == null) {
  32. detail = CommonListener.initRuleEngineDetailLog((CronTrigger)context.getTrigger(), LocalDateTime.now());
  33. detail.setConstraints(new ArrayList());
  34. }
  35. log.info("commonJob start ruleEngineId: {}, detail: {}, spaceId: {}", ruleEngineId, detail, spaceId);
  36. this.ruleEngineUtil.performMultipleDevicesControl(ruleEngineId, true, TriggerTypeEnum.CRON.getType(), projectId, spaceId, actions, detail);
  37. }
  38. }