我尝试使用newSingleThreadScheduledExecutor调度执行器,该执行器在10天后(从系统初始化开始)、20天后(从系统初始化开始)和每个月的第一天发送报告。 但是,我认为我们有一个更优雅的方式来解决这个问题,与一些遗嘱执行人。 你知道如何改进我的代码吗?
调度程序:
scheduler.scheduleWithFixedDelay(() -> { try { createReport(); } catch (Exception e) { log.error("Error to create engagement report", e); } }, 1, 1, TimeUnit.DAYS);
谢谢
scheduler.schedule(createTask , nextDayOfTask, TimeUnit.DAYS);
所以,每次我到 createTask
createTask
public Runnable createTask = new Runnable() { @Override public void run() { // Do What Ever You Need scheduler.schedule(this, nextDayOfTask, TimeUnit.DAYS); } };