情况:
我正在运行使用QuartzSchduler的Strut Web应用程序。应用程序正常运行,但有时会自动关闭。
我已经分析了日志并找到了模式,最后一个进程invokde是应用程序即将死亡之前的QuartzScheduler。
MyQuestion: 我的代码中有调度程序的启动方法,需要在编制作业后关闭它吗?
Trigger ContentDataTrigger =
TriggerBuilder.newTrigger().withIdentity("anyTriggerName", "group1")
.withSchedule(
CronScheduleBuilder.cronSchedule("0 0/15 * * * ?"))
.build();
Trigger ImageDataTrigger = TriggerBuilder
.newTrigger()
.withIdentity("anyTriggerName", "group2")
.withSchedule(
CronScheduleBuilder.cronSchedule("0 0 0/1 1/1 * ? *"))
.build();
Trigger VideoDataTrigger = TriggerBuilder
.newTrigger()
.withIdentity("anyTriggerName", "group3")
.withSchedule(
CronScheduleBuilder.cronSchedule("0 25 0/1 1/1 * ? *"))
.build();
Scheduler scheduler = new StdSchedulerFactory().getScheduler();
scheduler.start();
scheduler.scheduleJob(contentJob,ContentDataTrigger);
scheduler.scheduleJob(imageJob,ImageDataTrigger);
scheduler.scheduleJob(videoJob,VideoDataTrigger);
答案 0 :(得分:0)
scheduler.start()
启动触发触发器的线程。
如果你致电scheduler.shtudown()
,它就会停止执行这些工作。我不认为这是你想要的行为。