0
這是一個愚蠢的問題,但我似乎無法在網上找到答案。沒有thread.sleep石英必須匹配我的時間表的時間?
如果是早上9點,我在中午12點安排工作,是否需要將我的thread.sleep
設置爲3小時?
換句話說,如果我將我的thread.sleep
設置爲5分鐘,並按照sched.shutdown(true)
繼續,我的工作是否仍會在中午執行?或者調度程序是否已經關閉?我沒有得到thread.sleep
的意見...有人可以澄清?僅在示例代碼
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);
}
你的意思是你睡在你的主要方法或類似的方面,這樣你的應用程序不會終止?如果你的程序停止了,那麼這個作業將不會運行。 – darrenmc
@darrenmc根據文檔,你應該在啓動後睡覺線程,以便作業有時間執行。我不明白這是否意味着睡眠線程,直到工作按計劃進行,或者只是休眠幾分鐘,以便它可以在關閉之前在調度程序中註冊。我添加了代碼來顯示我的'thread.sleep'出現在哪裏。我使用'Swing',並且我的try/catch塊在按下按鈕時發生的方法中。我的'thread.sleep'只在該按鈕的方法中,如果這有幫助... –
我認爲睡眠只在示例代碼中演示石英。這不是我在生產代碼中做的事情。我認爲最好在應用程序初始化時啓動調度程序,並在應用程序關閉時停止它。調度作業然後在程序的其他部分處理。 – darrenmc