2010-12-17 73 views
1

我爲我的一個應用程序創建了自動應用程序更新程序。這是一個兩部分的應用程序。第一部分是版本檢查器和更新下載器。第二部分安裝下載的更新(以便更新程序可以自行更新)。創建自動客戶端/服務器更新程序

這適用於獨立應用程序。用戶不必具有應用程序的快捷方式,而是具有更新程序的快捷方式。如果更新程序找到更新,則會下載並安裝更新,然後重新啓動更新程序。如果沒有找到更新,則用戶期望的應用程序被注視。

我現在需要爲客戶端\服務器應用程序創建更新過程。客戶端仍可以使用與上述相同的過程。但是,服務器不能這樣做,因爲某些需要更新的文件可能會被客戶端使用。我已經考慮了幾天,現在只提出了兩個我不喜歡的想法。

第一個想法是最簡單的,在服務器重啓時運行服務器更新(在客戶端連接之前)。我知道服務器每天至少在午夜重新啓動一次。重新啓動會斷開任何仍連接的客戶端的硬連接,因此這些文件不應再使用。

第二個想法是在服務器需要更新時創建某種忙標誌。當繁忙標誌存在時,客戶端不能運行。我看到的問題是檢查國旗。客戶端可以在同一時間檢查服務器正在設置標誌。

我該如何繼續?你將如何實現服務器更新?想法,意見,問題?

回答

0

如果客戶端沒有連接到服務器,則可以檢查更新,如果需要可以下載更新,然後等到沒有客戶端連接(或下一次重新啓動,以先到者爲準)進行安裝。

如果更新優先於客戶端連接(它似乎不基於您的問題),您可以強制關閉所有連接並更新。您也可以向連接的客戶端發送消息,讓他們知道爲什麼他們即將斷開連接。也許甚至給他們5分鐘的時間來保存他們的工作並在服務器重新啓動之前註銷。