在Java应用程序中,使用关闭挂钩来自动更新应用程序是否是个好主意?

这个想法是在应用程序运行时检查更新。更新包括一个主要罐子和一些第三方罐子。如果有可用的更新:在Java应用程序中,使用关闭挂钩来自动更新应用程序是否是个好主意?

  • 下载他们
  • 把它们放在一个临时目录
  • 添加一个关闭挂钩,取代所有的罐子实际罐子从temp目录

这是一个好主意?

回答:

号从Javadoc:

关闭挂钩还应该迅速完成其工作。当一个程序调用退出时,期望虚拟机会立即关闭并退出。当由于用户注销或系统关闭而导致虚拟机终止时,底层操作系统可能只允许关闭并退出的固定时间。因此,尝试任何用户交互或在关闭钩子中执行长时间运行计算是不可取的。

ergo您不应该在关机挂钩中进行长时间运行或阻塞活动。

回答:

如果你想要一个围绕shutDown hook的可靠系统,那么由于以下原则,这不是一个好主意: -
a)关闭挂钩可能不会在某些情况下执行。
b)一旦开始,关闭挂钩可以在完成之前被强制停止。
c)如果定义了多个关闭挂钩,则不保证它们的执行顺序。
d)无法使用停机挂钩注册/取消注册Shutdown Hooks。

更多关于它可以在Javadoc中找到ref

以上是 在Java应用程序中,使用关闭挂钩来自动更新应用程序是否是个好主意? 的全部内容, 来源链接: utcz.com/qa/260124.html

回到顶部