Her gün sabah 5'de belirli bir görevi yerine getirmeye çalışıyorum. Bunun için kullanmaya karar verdim ScheduledExecutorService
ama şimdiye kadar birkaç dakikada bir görevin nasıl çalıştırılacağını gösteren örnekler gördüm.
Her gün belirli bir saatte (5 AM) bir görevin nasıl çalıştırılacağını gösteren ve ayrıca gün ışığından yararlanma saati gerçeğini de göz önünde bulunduran bir örnek bulamıyorum
Her 15 dakikada bir çalışacak olan kodum aşağıdadır -
public class ScheduledTaskExample {
private final ScheduledExecutorService scheduler = Executors
.newScheduledThreadPool(1);
public void startScheduleTask() {
/**
* not using the taskHandle returned here, but it can be used to cancel
* the task, or check if it's done (for recurring tasks, that's not
* going to be very useful)
*/
final ScheduledFuture<?> taskHandle = scheduler.scheduleAtFixedRate(
new Runnable() {
public void run() {
try {
getDataFromDatabase();
}catch(Exception ex) {
ex.printStackTrace(); //or loggger would be better
}
}
}, 0, 15, TimeUnit.MINUTES);
}
private void getDataFromDatabase() {
System.out.println("getting data...");
}
public static void main(String[] args) {
ScheduledTaskExample ste = new ScheduledTaskExample();
ste.startScheduleTask();
}
}
Herhangi bir şekilde, gün ScheduledExecutorService
ışığından yararlanma saati gerçeğini de dikkate alarak her gün sabah 05: 00'te çalışacak bir görev planlayabilir miyim ?
Ve ayrıca TimerTask
bunun için daha ScheduledExecutorService
mı iyi ?