/** * 从Scheduler 移除当前的Job,修改Trigger * * @param jobDetail * @param time * @throws SchedulerException * @throws ParseException */ public static void modifyJobTime(JobDetail jobDetail, String time) throws SchedulerException, ParseException { Scheduler sched = sf.getScheduler(); Trigger trigger = sched.getTrigger(jobDetail.getName(), TRIGGER_GROUP_NAME); if (trigger != null) { CronTrigger ct = (CronTrigger) trigger; // 移除当前进程的Job sched.deleteJob(jobDetail.getName(), jobDetail.getGroup()); // 修改Trigger ct.setCronExpression(time); System.out.println("CronTrigger getName " + ct.getJobName()); // 重新调度jobDetail sched.scheduleJob(jobDetail, ct); } }
public static void startJob(String jobName, Job job, String time) throws SchedulerException, ParseException { Scheduler sched = sf.getScheduler(); JobDetail jobDetail = new JobDetail(); jobDetail.setName(jobName); jobDetail.setGroup(JOB_GROUP_NAME); jobDetail.setJobClass(job.getClass()); CronTrigger trigger = new CronTrigger(jobName, TRIGGER_GROUP_NAME); trigger.setCronExpression(time); sched.scheduleJob(jobDetail, trigger); if (!sched.isShutdown()) { sched.start(); } }
private void addEscalationJob(Scheduler scheduler) throws SchedulerException { JobDetail oJobDetail_Escalation_Standart = new JobDetail( "oJobDetail_Escalation_Standart", "oJobDetail_Escalation_Group", JobEscalation.class); CronTrigger oCronTrigger_EveryNight_Deep = new CronTrigger("oCronTrigger_EveryNight_Deep", "oCronTrigger_EveryNight_Group"); try { LOG.info("oCronExpression__EveryNight_Deep..."); CronExpression oCronExpression__EveryNight_Deep = new CronExpression("0 0 2 1/1 * ?"); LOG.info("oCronExpression__EveryNight_Deep.setCronExpression..."); oCronTrigger_EveryNight_Deep.setCronExpression(oCronExpression__EveryNight_Deep); } catch (Exception oException) { LOG.error("FAIL: {}", oException.getMessage()); } if (!generalConfig.bTest()) { LOG.info("scheduleJob..."); scheduler.scheduleJob(oJobDetail_Escalation_Standart, oCronTrigger_EveryNight_Deep); } else { LOG.info("scheduleJob... SKIPED(test)!"); } }