我为我的一个应用程序创建了一个自动应用程序更新程序。这是一个两部分的应用程序。第一部分是版本检查器和更新下载器。第二部分安装下载的更新(以便更新程序可以自我更新)。
这在独立应用程序上运行良好。他们拥有更新程序的快捷方式,而不是用户拥有应用程序的快捷方式。如果更新程序发现更新,则下载,安装更新,然后重新启动更新程序。如果未找到更新,则会盯着用户所需的应用程序。
我现在需要为客户端\服务器应用程序创建更新过程。客户端仍然可以使用与上面相同的过程。但是,服务器不能,因为客户端正在使用某些需要更新的文件。我已经考虑过这几天了,并且只提出了两个想法,我也不喜欢这两个想法。
第一个想法是最简单的,在服务器重启时运行服务器更新(在客户端连接之前)。我知道服务器每天至少重启一次,大约午夜。重新启动会对仍然连接的任何客户端进行硬断开连接,因此不再使用这些文件。
第二个想法是在需要更新时在服务器上创建某种忙标志。当busy标志存在时,无法运行客户端。我看到它的问题是检查标志。客户端可以在服务器设置标志的同时检查。
我该怎么办?您将如何实施服务器更新?想法,评论,问题?
答案 0 :(得分:0)
如果客户端没有连接到客户端,您可以检查更新,必要时下载它们,然后等到没有客户端连接(或下次重启,以先到者为准)进行安装。
如果更新优先于客户端连接(它似乎不是基于您的问题),您可以强制关闭所有连接并更新。您还可以向连接的客户端发送消息,让他们知道为什么他们即将断开连接。甚至可以给他们一个5分钟的窗口来保存他们的工作并在服务器重新启动之前注销。