package jnpf.flowable.job; import jnpf.flowable.model.time.FlowTimeModel; import jnpf.flowable.util.TimeUtil; import jnpf.util.JsonUtil; import jnpf.util.RandomUtil; import jnpf.util.RedisUtil; import org.quartz.JobDataMap; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.ApplicationArguments; import org.springframework.boot.ApplicationRunner; import java.util.Date; import java.util.List; /** * 类的描述 * * @author JNPF@YinMai Info. Co., Ltd * @version 5.0.x * @since 2024/5/23 17:49 */ //@Component public class JobRunner implements ApplicationRunner { @Autowired private RedisUtil redisUtil; @Override public void run(ApplicationArguments args) throws Exception { // 获取缓存中定时相关信息 List list = FlowJobUtil.getOperator(redisUtil); for (FlowTimeModel timeModel : list) { Date date = new Date(); // 判断当前时间是否已经 超过了结束时间 if (date.getTime() > timeModel.getEndDate().getTime()) { continue; } if (timeModel.getOn()) { timeModel.setId(RandomUtil.uuId()); JobDataMap jobDataMap = new JobDataMap(); jobDataMap.putAll(JsonUtil.entityToMap(timeModel)); FlowJobUtil.insertModel(timeModel, redisUtil); TimeUtil.addJob(timeModel.getId(), timeModel.getDuring(), FlowTime.class, jobDataMap, timeModel.getStartDate(), timeModel.getEndDate()); } } } }