Java thread.sleep in quartz是否必须与我的时间表相匹配?
这是一个愚蠢的问题,但我似乎无法在网上找到答案 如果是上午9:00,我将作业安排在下午12:00,我是否需要将Java thread.sleep in quartz是否必须与我的时间表相匹配?,java,quartz-scheduler,Java,Quartz Scheduler,这是一个愚蠢的问题,但我似乎无法在网上找到答案 如果是上午9:00,我将作业安排在下午12:00,我是否需要将线程睡眠时间设置为3小时 换句话说,如果我将线程.sleep设置为仅5分钟,然后执行sched.shutdown(true)作业是否仍在中午运行?或者调度程序是否已经关闭?我不明白线程的意思。睡眠…有人能澄清一下吗 编辑添加的代码: try { SchedulerFactory sf = new StdSchedulerFactory(); Sc
线程睡眠时间设置为3小时
换句话说,如果我将线程.sleep
设置为仅5分钟,然后执行sched.shutdown(true)
作业是否仍在中午运行?或者调度程序是否已经关闭?我不明白线程的意思。睡眠
…有人能澄清一下吗
编辑添加的代码:
try {
SchedulerFactory sf = new StdSchedulerFactory();
Scheduler sched = sf.getScheduler();
JobDetail job = newJob(HelloWorld.class)
.withIdentity("job0","group1")
.build();
CronTrigger trigger = newTrigger()
.withIdentity("trigger1", "group1")
.withSchedule(cronSchedule("0 0 12 ? 1-12 2-6"))
.build();
sched.scheduleJob(job,trigger);
sched.start();
Thread.sleep(300000L); //300000 milliseconds is 5 minutes
sched.shutdown(true);
} catch (SchedulerException ex) {
Logger.getLogger(IBTradeGui.class.getName()).log(Level.SEVERE, null, ex);
}
睡眠仅在示例代码中用于演示quartz。这不是在生产代码中要做的事情
最好在应用程序初始化时启动计划程序,在应用程序关闭时停止它。然后在程序的其他部分处理调度作业。您的意思是说您正在使用main方法或类似方法睡眠,以便应用程序不会终止?如果您的程序停止,那么作业将不会运行。@darrenmc根据文档,您应该在启动线程后休眠线程,以便作业有时间执行。我不明白这是否意味着在调度作业之前睡眠线程,或者只是睡眠几分钟,以便在关机之前在调度程序中注册。我添加了代码,向您显示我的
线程.sleep
的显示位置。我使用的是Swing
,我的try/catch块位于按下按钮时发生的方法中。我的thread.sleep
仅在按钮方法中,如果有帮助的话…我认为睡眠仅在示例代码中演示quartz。这不是我在生产代码中所做的事情。我认为最好在应用程序初始化时启动调度器,在应用程序关闭时停止它。安排作业然后在程序的其他部分处理。@darrenmc啊,这是一个更聪明的主意……谢谢。如果你加上这个作为回答,我会接受的。谢谢