@Bean(initMethod = "start", destroyMethod = "destroy") public XxlJobDynamicScheduler getXxlJobDynamicScheduler(SchedulerFactoryBean schedulerFactory){ Scheduler scheduler = schedulerFactory.getScheduler(); XxlJobDynamicScheduler xxlJobDynamicScheduler = new XxlJobDynamicScheduler(); xxlJobDynamicScheduler.setScheduler(scheduler); return xxlJobDynamicScheduler; }
/** * 新增单个任务 Cron */ public void scheduleCronNewJob(ScheduleJob scheduleJob) throws SchedulerException, ClassNotFoundException { Scheduler scheduler = schedulerFactoryBean.getScheduler(); TriggerKey triggerKey = TriggerKey.triggerKey(scheduleJob.getJobName(), scheduleJob.getJobGroup()); // 获取trigger,即在spring配置文件中定义的bean id="myTrigger" CronTrigger trigger = (CronTrigger) scheduler.getTrigger(triggerKey); // 不存在,创建一个 JobDetail jobDetail = JobBuilder.newJob((Class<? extends Job>) Class.forName(scheduleJob.getJobClass())) .withIdentity(scheduleJob.getJobName(), scheduleJob.getJobGroup()).withDescription( scheduleJob.getDesc()).build(); // 表达式调度构建器 CronScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule(scheduleJob.getCronExpression()); // 按新的cronExpression表达式构建一个新的trigger trigger = TriggerBuilder.newTrigger().withIdentity(triggerKey).withSchedule(scheduleBuilder).build(); scheduler.scheduleJob(jobDetail, trigger); }
/** * 更新时间表达式 */ public void rescheduleJob(ScheduleJob scheduleJob) throws SchedulerException { Scheduler scheduler = schedulerFactoryBean.getScheduler(); TriggerKey triggerKey = TriggerKey.triggerKey(scheduleJob.getJobName(), scheduleJob.getJobGroup()); // 获取trigger CronTrigger trigger = (CronTrigger) scheduler.getTrigger(triggerKey); // 表达式调度构建器 CronScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule(scheduleJob.getCronExpression()); // 按新的cronExpression表达式重新构建trigger trigger = trigger.getTriggerBuilder().withIdentity(triggerKey).withSchedule(scheduleBuilder).build(); // 按照新的trigger重新设置job执行 scheduler.rescheduleJob(triggerKey, trigger); }
public void scheduleCronJobs() throws SchedulerException { Scheduler scheduler = schedulerFactoryBean.getScheduler(); List<ScheduleJob> jobList = getAllJobs(null, null); for (ScheduleJob job : jobList) { TriggerKey triggerKey = TriggerKey.triggerKey(job.getJobName(), job.getJobGroup()); // 获取trigger,即在spring配置文件中定义的bean id="myTrigger" CronTrigger trigger = (CronTrigger) scheduler.getTrigger(triggerKey); // 不存在,创建一个 // if (null == trigger) { if (!scheduler.checkExists(triggerKey)) { JobDetail jobDetail = JobBuilder.newJob(QuartzJobFactory.class).withIdentity(job.getJobName(), job.getJobGroup()).build(); // 表达式调度构建器 CronScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule(job.getCronExpression()); // 按新的cronExpression表达式构建一个新的trigger trigger = TriggerBuilder.newTrigger().withIdentity(triggerKey).withSchedule(scheduleBuilder).build(); scheduler.scheduleJob(jobDetail, trigger); } else { // trigger已经存在,那么更细相应的定时设置 // 表达式调度构建器 CronScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule(job.getCronExpression()); // 按新的cronExpression表达式重新构建trigger trigger = trigger.getTriggerBuilder().withIdentity(triggerKey).withSchedule(scheduleBuilder).build(); // 按新的trigger重新设置job执行 scheduler.rescheduleJob(triggerKey, trigger); } } }
/** * 暂停 */ public void pauseJob(ScheduleJob scheduleJob) throws SchedulerException { Scheduler scheduler = schedulerFactoryBean.getScheduler(); JobKey jobKey = JobKey.jobKey(scheduleJob.getJobName(), scheduleJob.getJobGroup()); scheduler.pauseJob(jobKey); }
/** * 恢复运行 */ public void resumeJob(ScheduleJob scheduleJob) throws SchedulerException { Scheduler scheduler = schedulerFactoryBean.getScheduler(); JobKey jobKey = JobKey.jobKey(scheduleJob.getJobName(), scheduleJob.getJobGroup()); scheduler.resumeJob(jobKey); }
/** * 运行一次 */ public void triggerJob(ScheduleJob scheduleJob) throws SchedulerException { Scheduler scheduler = schedulerFactoryBean.getScheduler(); JobKey jobKey = JobKey.jobKey(scheduleJob.getJobName(), scheduleJob.getJobGroup()); scheduler.triggerJob(jobKey); }
/** * 删除 */ public void deleteJob(ScheduleJob scheduleJob) throws SchedulerException { Scheduler scheduler = schedulerFactoryBean.getScheduler(); JobKey jobKey = JobKey.jobKey(scheduleJob.getJobName(), scheduleJob.getJobGroup()); scheduler.deleteJob(jobKey); }
Scheduler scheduler = schedulerFactoryBean.getScheduler();
/** * 调度单个任务 SimpleTrigger 和 CronTrigger */ public void scheduleSingleJob(ScheduleJob job) throws SchedulerException, ClassNotFoundException { Scheduler scheduler = schedulerFactoryBean.getScheduler(); // List<ScheduleJob> jobList = getAllJobs(); TriggerKey triggerKey = TriggerKey.triggerKey(job.getTriggerName(), job.getTriggerGroup()); // 获取trigger Trigger trigger = scheduler.getTrigger(triggerKey); // 不存在,创建一个 // if (null == trigger) { if (!scheduler.checkExists(triggerKey)) { JobDetail jobDetail = JobBuilder.newJob((Class<? extends Job>) Class.forName(job.getJobClass())) .withIdentity(job.getJobName(), job.getJobGroup()).withDescription(job.getDesc()).build(); TriggerBuilder triggerBuilder = TriggerBuilder.newTrigger(); trigger = setTriggerParam(job, triggerKey, triggerBuilder, trigger); scheduler.scheduleJob(jobDetail, trigger); } else { // trigger已经存在,更新相应的定时设置 TriggerBuilder triggerBuilder = trigger.getTriggerBuilder(); trigger = setTriggerParam(job, triggerKey, triggerBuilder, trigger); // 按新的trigger重新设置job执行 scheduler.rescheduleJob(triggerKey, trigger); } }
/** * 获取运行中的任务 */ public List<ScheduleJob> getRunningJobs() throws SchedulerException { Scheduler scheduler = schedulerFactoryBean.getScheduler(); List<JobExecutionContext> executingJobs = scheduler.getCurrentlyExecutingJobs(); List<ScheduleJob> jobList = new ArrayList<ScheduleJob>(executingJobs.size()); for (JobExecutionContext executingJob : executingJobs) { ScheduleJob job = new ScheduleJob(); JobDetail jobDetail = executingJob.getJobDetail(); JobKey jobKey = jobDetail.getKey(); Trigger trigger = executingJob.getTrigger(); job.setJobId(jobKey.getGroup() + "_" + jobKey.getName()); job.setJobName(jobKey.getName()); job.setJobGroup(jobKey.getGroup()); job.setDesc(trigger.getDescription()); Trigger.TriggerState triggerState = scheduler.getTriggerState(trigger.getKey()); job.setJobStatus(triggerState.name()); if (trigger instanceof CronTrigger) { CronTrigger cronTrigger = (CronTrigger) trigger; String cronExpression = cronTrigger.getCronExpression(); job.setCronExpression(cronExpression); } jobList.add(job); } return jobList; }
if(condition!=null); jobId = condition.getConditionMap().get("jobId").toString(); Scheduler scheduler = schedulerFactoryBean.getScheduler(); GroupMatcher<JobKey> matcher = GroupMatcher.anyJobGroup(); Set<JobKey> jobKeys = scheduler.getJobKeys(matcher);
Scheduler scheduler = schedulerFactoryBean.getScheduler(); JobKey jobKey = new JobKey(scheduleJob.getJobName(), scheduleJob.getJobGroup()); List<? extends Trigger> triggers = scheduler.getTriggersOfJob(jobKey);
@Override public void destroy() throws Exception { SchedulerFactoryBean scheduler = ctx.getBean(SchedulerFactoryBean.class); scheduler.getScheduler().shutdown(); }
public void initialize() { try { final JobDetail existingReaperJob = schedulerFactoryBean.getScheduler().getJobDetail(reaperJob.getKey()); if (existingReaperJob != null) { schedulerFactoryBean.getScheduler().deleteJob(reaperJob.getKey()); } schedulerFactoryBean.getScheduler().scheduleJob(reaperJob, reaperTrigger); } catch (SchedulerException e) { e.printStackTrace(); logger.error("Encountered exception while scheduling aggregation", e); } }
public void resumeJob(long id) { try { springScheduler.getScheduler().resumeJob(findJobKey(String.valueOf(id))); } catch (SchedulerException e) { LOGGER.error("Can't delete job"); } }
@Override public void shutdownJobs() { Scheduler scheduler = schedulerFactoryBean.getScheduler(); try { if (!scheduler.isShutdown()) { scheduler.shutdown(); } } catch (SchedulerException e) { e.printStackTrace(); } } }
@SuppressWarnings("unchecked") private void setJobStartTime(JobDetail jobDetail) throws SchedulerException { Scheduler scheduler = factory.getScheduler(); JobKey jobKey = jobDetail.getKey(); List<Trigger> triggers = (List<Trigger>) scheduler.getTriggersOfJob(jobKey); Date triggerTime = triggers.get(0).getPreviousFireTime(); jobStartTime = triggerTime.getTime(); }
/** * 暂停一个job * * @param scheduleJob * @throws SchedulerException */ public void pauseJob(ScheduleJob scheduleJob) throws SchedulerException { Scheduler scheduler = schedulerFactoryBean.getScheduler(); JobKey jobKey = JobKey.jobKey(scheduleJob.getJobName(), scheduleJob.getJobGroup()); scheduler.pauseJob(jobKey); }
@Before public void setUp() throws Exception { // Create scheduler SchedulerFactoryBean sfb = new SchedulerFactoryBean(); sfb.setSchedulerFactoryClass(AlfrescoSchedulerFactory.class); sfb.setAutoStartup(false); sfb.afterPropertiesSet(); scheduler = sfb.getScheduler(); hbJobScheduler = createSimpleJobScheduler(); hbJobScheduler.setScheduler(scheduler); }