我正在为学校编写一个程序,如果学校时间表发生变化,它将发送一封电子邮件。程序必须每 5 分钟从学校网站读取更新信息,直到下午 4:00,并且必须等待接下来的 14 小时并重复相同的操作。
我的问题是:如何在 Java 中有效地实现这个短的 ~5 分钟和非常长的 ~14h 间隔?
只需使用 Thread.wait(millis)?
谢谢!
//编辑:感谢您的回答,我想我将使用一次执行的计时器,并在每次更新后计算新的延迟。
我正在为学校编写一个程序,如果学校时间表发生变化,它将发送一封电子邮件。程序必须每 5 分钟从学校网站读取更新信息,直到下午 4:00,并且必须等待接下来的 14 小时并重复相同的操作。
我的问题是:如何在 Java 中有效地实现这个短的 ~5 分钟和非常长的 ~14h 间隔?
只需使用 Thread.wait(millis)?
谢谢!
//编辑:感谢您的回答,我想我将使用一次执行的计时器,并在每次更新后计算新的延迟。
即使在这种情况下性能并不重要,也只需在启动网站检查时Calendar.getInstance()
或new Date()
之前检查当前日期。如果不在你的时间范围内,什么也不做。要安排网站检查,只需使用java.util.Timer
或类似的服务/框架。
请看一下石英。它满足大多数时间/调度需求。
您可以使用 Java Timer 的 schedule 方法。每次执行任务后,您应该计算一个时间间隔(基于当前时间)并相应地安排任务到新的时间间隔。