2
我有一個ScheduledService,通過設置setPeriod(Duration.seconds((int) 1 + Math.rand()*100))
隨機時間(從1秒到101秒)重新啓動。如果隨機數是65,那麼服務系統地每65秒重新啓動一次。javafx:如何設置ScheduledService以隨機時間間隔重新啓動?
但是,我真正想要的是它會在每個週期的隨機(而不是固定)時間重新啓動。
UPDATE:通過隨機的,我的意思是它會產生每次運行的隨機數。所以,也許該服務將在接下來的10秒內再次重啓,下一次爲100秒,下一次爲35秒。
我該如何做到這一點?
class Foo
private final ScheduledService<Item> service = new ScheduledService<Item>() {
@Override
public Task<Item> createTask(){
return new Task<Item>() {
@Override
public Item call() throws Exception {
return //Item object
}
};
}
};
// constructor
public Foo(){
service.setPeriod(Duration.seconds((int) 1 + Math.rand()*100));
....
service.startMonitoring();
}
public final void startMonitoring() {
service.restart();
}
public final void stopMonitoring() {
service.cancel();
}
}