代码之家  ›  专栏  ›  技术社区  ›  Nofar103

执行人在不同的时间间隔安排

  •  0
  • Nofar103  · 技术社区  · 8 年前

    我尝试使用newSingleThreadScheduledExecutor调度执行器,该执行器在10天后(从系统初始化开始)、20天后(从系统初始化开始)和每个月的第一天发送报告。 但是,我认为我们有一个更优雅的方式来解决这个问题,与一些遗嘱执行人。 你知道如何改进我的代码吗?

    调度程序:

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

    谢谢

    1 回复  |  直到 8 年前
        1
  •  0
  •   Nofar103    8 年前

    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);
        }
    };
    
    推荐文章