下面列出了org.quartz.SchedulerContext#put ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
/**
* 初始化自动的调度器数据
*
* @param scheduler 调度器
* @param jobBeanFactory JobBean工厂
*/
static void initAutomaticScheduler(Scheduler scheduler, JobBeanFactory jobBeanFactory) {
try {
SchedulerContext schedulerContext = scheduler.getContext();
schedulerContext.put(JOB_BEAN_FACTORY_KEY, jobBeanFactory);
schedulerContext.put(SCHEDULE_MODE_KEY, ScheduleMode.AUTOMATIC);
} catch (SchedulerException e) {
LoggerHelper.error("get schedule context failed.", e);
throw new NiubiException(e);
}
}
/**
* 初始化手动的调度器数据
*
* @param scheduler 调度器
*/
static void initManualScheduler(Scheduler scheduler) {
try {
SchedulerContext schedulerContext = scheduler.getContext();
schedulerContext.put(SCHEDULE_MODE_KEY, ScheduleMode.MANUAL);
} catch (SchedulerException e) {
LoggerHelper.error("get schedule context failed.", e);
throw new NiubiException(e);
}
}
@Override
public void execute(JobExecutionContext context) throws JobExecutionException {
try {
SchedulerContext schedulerContext = context.getScheduler().getContext();
schedulerContext.put(JOB_THREAD, Thread.currentThread());
CyclicBarrier barrier = (CyclicBarrier) schedulerContext.get(BARRIER);
barrier.await(TEST_TIMEOUT_SECONDS, TimeUnit.SECONDS);
}
catch (Throwable e) {
e.printStackTrace();
throw new AssertionError("Await on barrier was interrupted: " + e.toString());
}
}