public static void main(String[] test) {
try {
JobKey jobKeyA = new JobKey("JobAssignVehicleDailyrideFixedVehicle", "group1");
JobDetail jobA = JobBuilder.newJob(JobAssignVehicleDailyrideFixedVehicle.class)
.withIdentity(jobKeyA).build();
Trigger trigger1 = TriggerBuilder
.newTrigger()
.withIdentity("Trigger1", "group1")
.withSchedule(
CronScheduleBuilder.cronSchedule("0/5 * * * * ?"))
.build();
scheduler = new StdSchedulerFactory().getScheduler();
scheduler.start();
scheduler.scheduleJob(jobA, trigger1);
} catch (SchedulerException e) {
logger.error(e);
}
}
我从jar文件中的主类运行此方法。 如何在不停止java进程的情况下正确关闭quartz。 有没有办法在调度程序上为当前运行的石英调用shutdown方法
答案 0 :(得分:3)
在Other线程中使用new StdSchedulerFactory().getScheduler()
来获取对主线程中启动的调度程序的引用。
为什么这样做?两个工厂实例上的 StdSchedulerFactory#getScheduler 的调用使用相同的 SchedulerRepository 单例,其中包含所有正在运行的石英调度程序的映射,在这种情况下,它只是默认调度程序。