如何解决Java Quartz 调度作业 - 作业停止运行
我有一个 JAVA 服务,我在其中使用 Quartz 进行作业调度。
最近我遇到了一些问题,在某些时候,调度程序只是停止运行。例如,我的作业应该每分钟运行一次,但我看到它们不运行的时间增量为 10 分钟。 我的 QuartzScheduler 类:
public class QuartzListener extends QuartzInitializerListener {
@Override
public void contextInitialized(ServletContextEvent sce) {
super.contextInitialized(sce);
ServletContext ctx = sce.getServletContext();
StdSchedulerFactory factory = (StdSchedulerFactory) ctx.getAttribute(QUARTZ_FACTORY_KEY);
try {
// Create the triggers
Trigger UpdateFileTrigger = TriggerBuilder.newTrigger().withIdentity("UpdateFileTrigger").
withSchedule(SimpleScheduleBuilder.simpleSchedule().withIntervalInMinutes(20).repeatForever()).startNow().build();
Trigger moStartAutoTrigger = TriggerBuilder.newTrigger().withIdentity("StartAutoTrigger").
withSchedule(SimpleScheduleBuilder.simpleSchedule().withIntervalInMinutes(1).repeatForever()).startNow().build();
Trigger moCheckAutoTrigger = TriggerBuilder.newTrigger().withIdentity("CheckAutoTrigger").
withSchedule(SimpleScheduleBuilder.simpleSchedule().withIntervalInMinutes(1).repeatForever()).startNow().build();
JobDetail uploadVMMFile = JobBuilder.newJob(UploadVMMFile.class).build();
JobDetail moCreateInstance = JobBuilder.newJob(MoCreateInstanceJob.class).build();
JobDetail moAttachVolumes = JobBuilder.newJob(MoAttachVolumesJob.class).build();
Scheduler scheduler = factory.getScheduler();
scheduler.scheduleJob(uploadVMMFile,UpdateFileTrigger);
scheduler.scheduleJob(moCreateInstance,moStartAutoTrigger);
scheduler.scheduleJob(moAttachVolumes,moCreateInstance);
scheduler.start();
} catch (SchedulerException e) {
e.printStackTrace();
}
}
}
在我的日志中,我看到一些重复的错误。我试图研究它们,但似乎无法找到重要意义:
org.quartz.simpl.SimpleThreadPool##anonymous#DefaultQuartzScheduler_Worker-9#na#application#scheduleservice#web##na#na#na#na#Worker thread was interrupt()'ed. java.lang.InterruptedException: null
at java.lang.Object.wait(Native Method)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:568)
ERROR#se.jiderhamn.classloader.leak.prevention.ClassLoaderLeakPreventor##anonymous#localhost-startStop-2#na#application#scheduleservice#web##na#na#na#na#ClassLoaderLeakPreventor: Stopping Thread 'Thread[DefaultQuartzScheduler_Worker-9,5,main]' of type org.quartz.simpl.SimpleThreadPool$WorkerThread running in web app after 5000 ms
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。