我正在寻找一个调度程序,它应该在每 N 个指定天的一天中的特定时间运行。
例如,我的任务应每 10 天在晚上 11 点运行一次。
可以使用cron表达式配置小时,但是我们如何设置间隔。
感谢您的帮助
最佳答案
您可以使用java.util.concurrent.ScheduledExecutorService
private final ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
scheduler.scheduleAtFixedRate(command, getTonight10PM(), period, unit);
更新:要设置初始延迟,您可以将 GregorianCalendar 中的时间设置为晚上 10 点并将其作为参数传递
private static Date getTonight10PM() {
Calendar today = new GregorianCalendar();
Calendar result =
new GregorianCalendar(today.get(Calendar.YEAR), today.get(Calendar.MONTH), today.get(Calendar.DATE), 23, 0);
return result.getTime();
}
关于java - 每 N 天在一天中的特定时间运行任务的调度程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24459190/