我對Java很新,我試圖生成一個每5到10秒運行一次的任務,因此在5到10之間的任何區間,包括10個。Java:隨機調度任務
我嘗試了幾件事,但沒有任何工作到目前爲止。我最近的努力如下:
timer= new Timer();
Random generator = new Random();
int interval;
//The task will run after 10 seconds for the first time:
timer.schedule(task, 10000);
//Wait for the first execution of the task to finish:
try {
sleep(10000);
} catch(InterruptedException ex) {
ex.printStackTrace();
}
//Afterwards, run it every 5 to 10 seconds, until a condition becomes true:
while(!some_condition)){
interval = (generator.nextInt(6)+5)*1000;
timer.schedule(task,interval);
try {
sleep(interval);
} catch(InterruptedException ex) {
ex.printStackTrace();
}
}
「task」是一個TimerTask。我得到的是:
Exception in thread "Thread-4" java.lang.IllegalStateException: Task already scheduled or cancelled
我從here是一個TimerTask不能重用理解,但我不知道如何解決它。順便說一下,我的TimerTask是相當複雜的,並持續至少1.5秒。
任何幫助將非常感謝,謝謝!
似乎工作,謝謝! – menackin