调度程序,用于每N天在特定时段运行的任务

时间:2014-06-27 19:07:50

标签: java scheduled-tasks

我正在寻找一个调度程序,该调度程序应该在每天N个指定日期的特定时间运行。

例如,我的任务应该每晚10点运行一次。

可以使用cron表达式配置小时,但我们如何设置间隔。

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

您可以使用java.util.concurrent.ScheduledExecutorService

private final ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
scheduler.scheduleAtFixedRate(command, getTonight10PM(), period, unit);

更新:要设置initialDelay,您可以将GregorianCalendar中的时间设置为10 PM并将其作为参数传递

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();
}
相关问题