执行者以不同的间隔安排



我尝试安排执行者与newsinglethreadscheduledexecutor安排的执行者,该executer在10天后发送报告(从系统初始化),20天后(从系统初始化)和每一个。这个月。我尝试使用每天运行的NewsingLeThreadScheduledexecutor,并检查今天是否在10天后。但是,我认为我们有一种更优雅的方式来与一些执行者解决此问题。您是否知道如何改进我的代码?

调度程序:

   scheduler.scheduleWithFixedDelay(() -> {
        try {
            createReport();
        } catch (Exception e) {
            log.error("Error to create engagement report", e);
        }
    }, 1, 1, TimeUnit.DAYS);

和createreport功能 - 我检查日期。

谢谢!

最终,我使用了在构造函数中初始化的计划ExecutorService计划:

scheduler.schedule(createTask , nextDayOfTask, TimeUnit.DAYS);

所以,每次我到达createTask时 - 我重新计算下一个报告应出来并更新时间表。

public Runnable createTask = new Runnable() {
    @Override
    public void run() {
        // Do What Ever You Need 
        scheduler.schedule(this, nextDayOfTask, TimeUnit.DAYS);
    }
};

相关内容

  • 没有找到相关文章

最新更新