在Java中实现很长时间间隔的有效方法

在Java中实现很长时间间隔的有效方法,java,performance,wait,intervals,Java,Performance,Wait,Intervals,我正在为学校写一个程序,如果学校时间表上有什么变化,它将发送一封电子邮件。课程必须每5分钟从学校网站上阅读一次最新信息,直到下午4:00,并在接下来的14小时内重复同样的内容 我的问题是:我如何在Java中有效地实现这个短~5分钟和很长~14小时的间隔 只使用线程。等等(毫秒) 谢谢 //编辑:谢谢你的回答,我想我会使用一个执行一次的计时器,并在每次更新后计算新的延迟。即使在这种情况下性能并不重要,在开始检查网站之前,只需使用Calendar.getInstance()或new date()检查

我正在为学校写一个程序,如果学校时间表上有什么变化,它将发送一封电子邮件。课程必须每5分钟从学校网站上阅读一次最新信息,直到下午4:00,并在接下来的14小时内重复同样的内容

我的问题是:我如何在Java中有效地实现这个短~5分钟和很长~14小时的间隔

只使用线程。等等(毫秒)

谢谢


//编辑:谢谢你的回答,我想我会使用一个执行一次的计时器,并在每次更新后计算新的延迟。

即使在这种情况下性能并不重要,在开始检查网站之前,只需使用
Calendar.getInstance()
new date()
检查当前日期即可。如果不在你的时间范围内,什么都不要做。要计划网站检查,只需使用
java.util.Timer
或类似的服务/框架。

您可以使用java Timer的计划方法。每次执行任务后,您都应该计算一个时间间隔(基于当前时间),并根据新的时间间隔安排任务。

请查看。它满足了大多数计时/排程需求。

每5分钟检查一次只需要很少的处理能力,而且教师通常在下午4点之后才有工作;)我会每5分钟检查一次。我会使用executor框架来处理这两个问题。。。这比用手做这些事情要干净得多。(Peter Lawrey是对的,因为没什么可做的,我也不喜欢在晚上每隔5分钟运行一次的作业。)在CPU需求最少的时候节省CPU也不值得。这当然很重要。CPU不会关心它,但是在一个周末你会执行大约800个无用的调用,这会浪费很多能量+1我会使用ScheduleExecutor服务,但同意您可以每五分钟检查一天中的小时数,并且在某些小时或周末不进行检查。