定时器边界事件任务

Timer boundary event task

我有一个任务,如果计划截止日期临近并且还剩 30 天,您需要发送通知,并且还要在剩余截止日期前 5 天发送通知。我现在已经搜索了很多,现在我找不到关于哪个元素以及如何做的答案。我想使用 Timer 事件,但如果我在 cron 的帮助下完成,那么如何理解你需要离开任务而不是 运行 如果发送通知不相关

Timer class 通常被 Executors 框架提供的计划执行程序服务淘汰。

安排一个经常运行的任务,看看是否接近截止日期阶段。

if( thirtyDayNoticeNotYetSent ) {
    LocalDate then = … retrieve date due … ;
    LocalDate today = LocalDate.now( ZoneId.of( "America/Edmonton" ) ) ;
    long daysUntil = ChronoUnit.DAYS.between( today , then ) ; 
    if( daysUntil < 30 ) { send notification … }
}

同样,搜索尚未收到 5 天通知的工作,并计算经过的天数。如果不足五岁,请发送通知并记录这一事实。

Stack Overflow 上多次介绍了计划执行程序服务。所以,搜索了解更多。