0
10 일 (시스템 초기화에서), 20 일 (시스템 초기화에서) 및 매월 1 일 후에 보고서를 보내는 newSingleThreadScheduledExecutor로 집행자를 예약하려고합니다. 매일 실행되는 newSingleThreadScheduledExecutor를 사용하여 오늘이 10 일 후인지 확인하려고 시도했습니다. 20 일 등 하지만 일부 집행자와 함께이 문제를 해결하는보다 세련된 방법이 있다고 생각합니다. 코드를 어떻게 개선 할 수 있습니까?실행자가 다른 간격으로 일정을 잡습니다.
스케줄러 :
scheduler.scheduleWithFixedDelay(() -> {
try {
createReport();
} catch (Exception e) {
log.error("Error to create engagement report", e);
}
}, 1, 1, TimeUnit.DAYS);
과 createReport 기능에
- 나는 날짜를 확인합니다.감사합니다. 나는 다음 보고서는 나가서 일정을 업데이트해야합니다-CALC를 재 -
scheduler.schedule(createTask , nextDayOfTask, TimeUnit.DAYS);
그래서 때마다 나는 createTask
에 도착 :
http://www.quartz-scheduler.org/documentation/quartz-2.x/tutorials/에서 'Quartz'와 같은 라이브러리를 살펴보십시오. –