这是一个愚蠢的问题,但我似乎无法在网上找到答案。
如果是早上9点,我在中午12:00安排工作,是否需要将thread.sleep
设置为3小时?
换句话说,如果我将thread.sleep
设置为仅仅5分钟并使用sched.shutdown(true)
关注它,我的工作仍会在中午运行吗?或者调度程序已经关闭了?我不明白thread.sleep
......有人可以澄清一下吗?
EDIT添加了代码:
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);
}
答案 0 :(得分:1)
睡眠仅在示例代码中演示石英。它不是生产代码中的事情。
最好在应用程序初始化时启动调度程序,并在应用程序关闭时停止它。然后,在程序的其他部分处理计划作业。