2015-09-07 34 views
0

我正在使用java + groovy,并且在远程页面上有两个文件。这些文件包含5分钟和30分钟的统计数据。例如,如果我现在在11:42连接设备,他将在11点45分报告中显示(这是每5分钟更新+写入文件延迟10秒),并在30分钟内报告他将在12:15出现(这是每30分钟更新+延迟2分钟写入文件)。如何在特定时间检查文件+在java中延迟?

如何将时间缩短为5分钟,并延迟一段时间,并延迟30分钟,以便可以读取文件?我正在自动添加设备,我必须等待设备在报告中显示,以便我可以继续进行其他检查。

谢谢

回答

1

对于这种需要,我会用一个调度框架(如Quartz),并在Cron way配置触发。这很容易实现,并且会在您的应用程序的将来提供很好的可维护性收益。

例如10 0/5 * * *?将每10分钟以10秒的“延迟”触发。

+0

而不是创建一个无限循环。最好有Job调度程序,如石英。这背后的原因是它有更多的功能可以轻松实现。就好像你必须在不同的时间运行两件不同的事情。调度程序将以更有效的方式执行此操作,同时也消耗更少的资源。 –

0

我想你需要计算的下一个更新,然后添加一个while循环:

while(true) { 
    if (nextUpdate >= currentTime) { 
     // Generate the report 
     // nextUpdate = calculate next update time 
    } 
} 

你写过什么码?

+0

好的。以及如何计算下一次更新时间? – samuellazea

+0

我要为这样的CPU吸收回路downvote –

+0

'System.currentTimeMillis()+ TimeUnit.MINUTES.toMillis(5)'这将在当前时间之后5分钟提供,您可以相应地将其更改为30分钟。 – Craig

相关问题