Java调度程序完全独立于系统时间更改

Java调度程序完全独立于系统时间更改,第1张

Java调度程序完全独立于系统时间更改

JVM中存在一个错误,无法在Sytem时间向后更改期间进行整体调度,这也影响了非常基本的Object.wait和Thread.sleep方法。当系统时间倒退甚至几秒钟时,保持Java
App运行变得太冒险了。您永远都不知道Java应用程序最终会变成什么样。

因此,我们决定:

  • 编写看门狗脚本(非Java :))以检查时间变化。
  • 如果时间倒退一定时间,请关闭并重新启动Java应用程序。

另一种可能性是迁移到32位JVM,但是我们使用的是JNI,然后目标平台上使用的本机库不兼容32位。同样,根据我们的经验,32位JVM将我们的目标限制为1.6G堆,这对于我们来说根本不够用。

我知道我们的解决方案不是最优雅的解决方案,但是直到JVM修复或找到更好的解决方案之前,似乎没有其他办法。

编辑: 除了上述解决方案之外,我们还考虑了克里斯的第一条建议:

  • 将NTP配置为永远不会跳太长时间。慢慢改变时间。在停机期间仅手动应用较大的时间跳跃。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5488923.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-12
下一篇 2022-12-12

发表评论

登录后才能评论

评论列表(0条)

保存