Java循环任务,日期问题

发布于 2024-09-13 08:53:12 字数 423 浏览 14 评论 0原文

我正在尝试在java中设置一个计划任务,每天运行一次。
问题是它只在第一天运行。
有什么想法吗?
谢谢

log.info("Schdualing midnight task");
    Timer timer = new Timer();
    Calendar date = Calendar.getInstance();

    date.set(Calendar.HOUR_OF_DAY, 23);
    date.set(Calendar.MINUTE, 30);
    date.set(Calendar.SECOND, 0);

    timer.schedule(new EndOfDayRatesTimerTask(new MidnightQuotesEvent()),
            date.getTime());

I am trying to set a scheduled task in java for running once in a day.
The problem is that it is running only in the first day.
Any idea y?
Thanks

log.info("Schdualing midnight task");
    Timer timer = new Timer();
    Calendar date = Calendar.getInstance();

    date.set(Calendar.HOUR_OF_DAY, 23);
    date.set(Calendar.MINUTE, 30);
    date.set(Calendar.SECOND, 0);

    timer.schedule(new EndOfDayRatesTimerTask(new MidnightQuotesEvent()),
            date.getTime());

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

挖鼻大婶 2024-09-20 08:53:12

使用 scheduleAtFixedRate()。例如,

TimerTask task = new EndOfDayRatesTimerTask(new MidnightQuotesEvent());
timer.scheduleAtFixedRate(task, date.getTime(), TimeUnit.DAYS.toMillis(1));

Use scheduleAtFixedRate() instead. For example,

TimerTask task = new EndOfDayRatesTimerTask(new MidnightQuotesEvent());
timer.scheduleAtFixedRate(task, date.getTime(), TimeUnit.DAYS.toMillis(1));
彩虹直至黑白 2024-09-20 08:53:12

您正在使用 schedule() 的单次版本。有一个版本需要一个额外的参数来指定后续执行之间的延迟。

You are using the single-shot version of schedule(). There's a version that takes an extra parameter to specify the delay between subsequent executions.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文