//package cn.com.goldenwater.dcproj.task; // //import cn.com.goldenwater.dcproj.model.BisInspTaskScheduler; //import cn.com.goldenwater.dcproj.utils.TaskSchedulerFactory; //import cn.com.goldenwater.dcproj.utils.TaskUtils; //import org.quartz.*; //import org.springframework.stereotype.Service; //import org.springframework.transaction.annotation.Transactional; // //import javax.annotation.Resource; // ///** // * @author lhc // * @date 2020/10/12 9:03 // */ // //@Service //public class TaskCronJobService { // @Resource // private TaskSchedulerFactory schedulerFactory; // // /** 在对任务进行保存时需同步更新调度器中的定时任务配置 */ // @Transactional // public void save(BisInspTaskScheduler taskCronJob) { // try { // BisInspTaskScheduler job = new BisInspTaskScheduler(); // TriggerKey triggerKey = TaskUtils.genCronTriggerKey(job); // Scheduler scheduler = schedulerFactory.getScheduler(); // JobKey jobKey = TaskUtils.genCronJobKey(job); // // 如果不同则代表着CRON表达式已经修改 // if (!job.getTaskSchedule().equals(taskCronJob.getTaskSchedule())) { // CronTrigger newTrigger = TriggerBuilder.newTrigger().withIdentity(triggerKey).forJob(jobKey) // .withSchedule(CronScheduleBuilder.cronSchedule(taskCronJob.getTaskSchedule()).withMisfireHandlingInstructionDoNothing()).build(); // // 更新任务 // scheduler.rescheduleJob(triggerKey, newTrigger); // } // if (!job.getTaskStatus().equals(taskCronJob.getTaskStatus())) { // // 如果状态为0则停止该任务 // if (!taskCronJob.getTaskStatus()) { // scheduler.unscheduleJob(triggerKey); // // scheduler.pauseJob(jobKey); // scheduler.deleteJob(jobKey); // // } else { // Trigger trigger = scheduler.getTrigger(triggerKey); // // trigger如果为null则说明scheduler中并没有创建该任务 // if (trigger == null) { // Class jobClass = Class.forName(job.getTaskClass().trim()); // @SuppressWarnings("unchecked") // JobDetail jobDetail = JobBuilder.newJob((Class) jobClass).withIdentity(jobKey) // .withDescription(job.getTaskName()).build(); // trigger = TriggerBuilder.newTrigger().withIdentity(triggerKey).forJob(jobKey) // .withSchedule(CronScheduleBuilder.cronSchedule(taskCronJob.getTaskSchedule()).withMisfireHandlingInstructionDoNothing()) // .build(); // // scheduler.scheduleJob(jobDetail, trigger); // } else { // // 不为null则说明scheduler中有创建该任务,更新即可 // CronTrigger newTrigger = TriggerBuilder.newTrigger().withIdentity(triggerKey).forJob(jobKey) // .withSchedule(CronScheduleBuilder.cronSchedule(taskCronJob.getTaskSchedule()).withMisfireHandlingInstructionDoNothing()) // .build(); // scheduler.rescheduleJob(triggerKey, newTrigger); // } // } // } // job.setTaskSchedule(taskCronJob.getTaskSchedule()); // job.setTaskStatus(taskCronJob.getTaskStatus()); // } catch (Exception e) { // log.error("定时任务刷新失败..."); // log.error(e.getMessage()); // } // } // // //}