繁体   English   中英

基于Java时间的执行

[英]Java time based execution

我要执行以下操作。 我计算程序中事件的发生。 我希望实现的是,在每个小时结束时(MST的时间范围,即我所在的时区),该小时数都记录在数据库中。 我只需要一个代码片段,该片段将在每个小时结束时执行。 请注意,我不希望线程休眠,因为当事件发生时,我还需要更新计数。

您可以实现TimerTask以便进行搜索。 或者,如果可以使用Quartz。 Google搜索应该是您的第一站。

在Java中,无法确保Runnable在给定时间准确执行。

您只能安排一个Runnable在大约给定时间间隔执行。 如果您足够满足要求,那么一个java.util.TimerExecutors.newSingleThreadScheduledExecutor()就足够了。 您只需要将计数器放在线程安全的原子变量中( AtomicInteger可能就足够了,具体取决于您期望的数字)。

如果要具有极高的精度,则最好修改事件处理程序,以便在记录事件之前,它检查在哪个小时,并根据该时间在队列中使用另一个“插槽”。 最后,您计划的任务将收集旧队列插槽,将其从队列中删除并存储到数据库。 (我认为这太过分了,但这取决于您)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM