Java 从任务中安排任务-良好实践?

Java 从任务中安排任务-良好实践?,java,spring,quartz-scheduler,Java,Spring,Quartz Scheduler,我每天都有一个“晚餐准备”活动,应该在15:00左右进行,但有时会被推迟,在15:05或16:20等时间进行 我想设置一个“检查晚餐状态”任务,该任务定期运行,在预期的晚餐准备就绪事件前3小时开始,并以定义的间隔运行,直到晚餐准备就绪。离吃饭时间越近,我检查晚餐的时间间隔就越短 设置此计划的最佳方式是什么?从刚刚运行的CheckDinnerTask中设置下一个CheckDinnerTask相当简单。但这是一种好的做法吗 下面的代码基于,但我对任何调度框架都持开放态度 scheduler.sche

我每天都有一个“晚餐准备”活动,应该在15:00左右进行,但有时会被推迟,在15:05或16:20等时间进行

我想设置一个“检查晚餐状态”任务,该任务定期运行,在预期的晚餐准备就绪事件前3小时开始,并以定义的间隔运行,直到晚餐准备就绪。离吃饭时间越近,我检查晚餐的时间间隔就越短

设置此计划的最佳方式是什么?从刚刚运行的CheckDinnerTask中设置下一个CheckDinnerTask相当简单。但这是一种好的做法吗

下面的代码基于,但我对任何调度框架都持开放态度

scheduler.schedule(new CheckDinnerTask(), new CronTrigger("* 0 12 * * *"));

public class CheckDinnerTask() implements Runnable {
  run() {
      if (isDinnerReady() == false)
      {
          // Find out how long until scheduled dinner and 
          int mins = getMinutesToExpectedDinnerTime(); 
          mins /= 2;
          if (mins < 5) 
             mins = 5;
          // Reschedule this task from here?
          scheduler.scheduleWithFixedDelay(new CheckDinnerTask(), mins*60*1000);

      }
      else 
      {
          eatDinner();
      }
  }
}
scheduler.schedule(新的CheckDinnerTask(),新的CronTrigger(“*0 12***”);
公共类CheckDinnerTask()实现Runnable{
运行(){
if(isDinnerReady()==false)
{
//找出离预定的晚餐还有多久
int mins=GetMinutesToExpectedInnerTime();
分钟/=2;
如果(分钟<5)
分钟=5;
//从这里重新安排此任务?
scheduler.scheduleWithFixedDelay(新的CheckDinnerTask(),分钟*60*1000);
}
其他的
{
吃晚餐();
}
}
}

递归任务的主要问题是,如果递归中有任何错误,它将发送垃圾邮件。您能精确地说明您使用的是哪种调度API吗?它不能扩展以支持您想要使用的复杂调度模式吗?@guillome-question更新以澄清我目前使用的是Spring调度,但我对任何框架都持开放态度。