Her gün sabah 5'de belirli bir görevi yerine getirmeye çalışıyorum. Bunun için kullanmaya karar verdim ScheduledExecutorServiceama ş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 TimerTaskbunun için daha ScheduledExecutorServicemı iyi ?