0

当达到特定的系统时间时,我如何实现代码来做某事?我想到的唯一解决方案是使用计时器每隔几分钟或几小时“滴答”一次,以检查是否已达到特定时间。

还有其他更好的解决方案吗?

谢谢。

抱歉,如果我不清楚,我将在我的 Java 程序中实现代码,它是在新的一天到来之前清除日志记录并保存记录。

示例:清除当前记录并在 23:59 保存这些记录。

4

7 回答 7

2

在纯 Java 中,有一个Timer 类。如果您已经有一个程序正在运行,这将很有用。或者您正在运行一个始终处于运行状态的 Web 应用程序。

另一种选择是使用操作系统(UNIX cron)并让它在那时启动 Java 程序。如果您不满足 Timer 的条件,这很有用。

于 2013-05-15T02:21:28.940 回答
1

如果我正确理解您的问题,对于 unix,您可以将代码放入 crontab 并安排它在特定系统时间运行。而对于 Windows,您可以使用任务调度程序。这就是我们为每晚构建运行特定测试脚本的方式。

于 2013-05-15T02:25:45.443 回答
1

Quartz Scheduler Framework是一个企业级框架,可以用作 Timer。

于 2013-05-15T02:25:19.580 回答
1

您可以制作一个持续时间较长的计时器。如果触发时间是从现在开始的 350 分钟,那么每分钟进行一次计时器轮询以查看是否已达到时间是没有意义的。只需将计时器设置为 350 分钟即可。一旦它触发,移除计时器。这称为一次性计时器。不幸的是,我无法回答如何在 Java 中专门执行此操作。

于 2013-05-15T02:21:54.513 回答
1

如果您使用的是类 Unix 系统,请查看cron

如果您在 Windows 上,请查看Windows 版本的 cron 是什么?

于 2013-05-15T02:22:27.470 回答
0

你试过石英调度器吗?,它是一个强大而先进的调度器框架,帮助Java开发人员调度一个作业在指定的日期和时间运行。点击这里了解更多

于 2013-05-15T02:29:51.577 回答
0

我认为java.util.concurrent.ScheduledExecutorService就足够了。

于 2013-05-15T02:42:31.163 回答