JobRunner.java 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. package jnpf.flowable.job;
  2. import jnpf.flowable.model.time.FlowTimeModel;
  3. import jnpf.flowable.util.TimeUtil;
  4. import jnpf.util.JsonUtil;
  5. import jnpf.util.RandomUtil;
  6. import jnpf.util.RedisUtil;
  7. import org.quartz.JobDataMap;
  8. import org.springframework.beans.factory.annotation.Autowired;
  9. import org.springframework.boot.ApplicationArguments;
  10. import org.springframework.boot.ApplicationRunner;
  11. import java.util.Date;
  12. import java.util.List;
  13. /**
  14. * 类的描述
  15. *
  16. * @author JNPF@YinMai Info. Co., Ltd
  17. * @version 5.0.x
  18. * @since 2024/5/23 17:49
  19. */
  20. //@Component
  21. public class JobRunner implements ApplicationRunner {
  22. @Autowired
  23. private RedisUtil redisUtil;
  24. @Override
  25. public void run(ApplicationArguments args) throws Exception {
  26. // 获取缓存中定时相关信息
  27. List<FlowTimeModel> list = FlowJobUtil.getOperator(redisUtil);
  28. for (FlowTimeModel timeModel : list) {
  29. Date date = new Date();
  30. // 判断当前时间是否已经 超过了结束时间
  31. if (date.getTime() > timeModel.getEndDate().getTime()) {
  32. continue;
  33. }
  34. if (timeModel.getOn()) {
  35. timeModel.setId(RandomUtil.uuId());
  36. JobDataMap jobDataMap = new JobDataMap();
  37. jobDataMap.putAll(JsonUtil.entityToMap(timeModel));
  38. FlowJobUtil.insertModel(timeModel, redisUtil);
  39. TimeUtil.addJob(timeModel.getId(), timeModel.getDuring(), FlowTime.class, jobDataMap, timeModel.getStartDate(), timeModel.getEndDate());
  40. }
  41. }
  42. }
  43. }