java - 每 N 天在一天中的特定时间运行任务的调度程序

标签 java scheduled-tasks

我正在寻找一个调度程序,它应该在每 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/

相关文章:

java - 在 Java 中实现一个基本的 FIFO 队列

java - jvm如何在创建非文字大小的数组时分配memroies

java - 如何使用 ClientCache 在所有集群/实例上的 GemFire 中发布

windows - 更改 Windows 计划任务的电源设置

python - 谷歌应用引擎(python)中的简单cron作业

java - 计划的执行者服务不工作

Spring,应用程序启动时运行一次任务

java - 如果对象不可比较,如何使方法抛出异常?

java - ScheduledThreadPoolExecutor线程run方法执行final block 而不完成try block

javascript - 如何让 android 在手机和平​​板电脑的应用程序中佩戴振动?