【问题标题】:Java scheduling tasks. Keep at restartJava 调度任务。重启时保持
【发布时间】:2014-01-19 10:22:34
【问题描述】:

我正在寻找以给定时间间隔安排任务的解决方案,
但我必须能够重新启动应用程序并让它在正确的时间执行任务。 我真的不想使用像 Quartz 这样的任何外部库。 任何帮助表示赞赏。 :)

【问题讨论】:

    标签: java scheduled-tasks task scheduling scheduler


    【解决方案1】:

    只需将开始时间保存在文件中即可。那么就可以随时使用取模运算符来获取下一个执行时间:

    nextExecutionTime = (startTime - currentTime) % interval + currentTime;
    

    【讨论】:

    • 嗯,现在我想知道我怎么没想到这一点。我可以用ScheduledExecutorService 管理它,然后就这样做吗? ses.schedule(someTask, (lastExecution + interval) - currentTime, TimeUnit.MilliSeconds);
    • 好吧,那么你只安排一次,但它会给出正确的结果。
    【解决方案2】:

    您可以使用 Linux crontab 来安排任务。在您的场景中,您可以导出一个 jar 并将其安排在 crontab 中。假设您的 jar 是 example.jar。

    0 12 * * * java -jar /home/example.jar

    这个 example.jar 将在每天中午 12 点(中午)触发。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-20
      相关资源
      最近更新 更多