CommonJob.java 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  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 org.quartz.CronTrigger;
  12. import org.quartz.DisallowConcurrentExecution;
  13. import org.quartz.Job;
  14. import org.quartz.JobDataMap;
  15. import org.quartz.JobExecutionContext;
  16. @DisallowConcurrentExecution
  17. public class CommonJob implements Job {
  18. @Resource
  19. private RuleEngineUtil ruleEngineUtil;
  20. public CommonJob() {
  21. }
  22. public void execute(JobExecutionContext context) {
  23. JobDataMap dataMap = context.getJobDetail().getJobDataMap();
  24. Long ruleEngineId = (Long)dataMap.get("ruleEngineId");
  25. Long projectId = (Long)dataMap.get("projectId");
  26. Long spaceId = (Long)dataMap.get("spaceId");
  27. List<RuleEngineAction> actions = (List)dataMap.get("actions");
  28. RuleEngineDetailLog detail = (RuleEngineDetailLog)context.get("detail");
  29. if (detail == null) {
  30. detail = CommonListener.initRuleEngineDetailLog((CronTrigger)context.getTrigger(), LocalDateTime.now());
  31. detail.setConstraints(new ArrayList());
  32. }
  33. this.ruleEngineUtil.performMultipleDevicesControl(ruleEngineId, true, TriggerTypeEnum.CRON.getType(), projectId, spaceId, actions, detail);
  34. }
  35. }