2013-01-11 110 views
0

我目前正在開發一個Web應用更新系統。它的工作方式就像主服務器是回購站點的版本控制。我的系統和vc之間的區別在於你不能提交/推送等到主服務器。PHP:寫入當前文件

這樣的想法是:

用戶去管理>更新

檢查更新

主回購發回所有最新版本的文件列表及其校驗

該應用程序根據服務器上的文件檢查此列表。如果某些過期/不匹配校驗和,則請求這些文件內容,然後在服務器上寫入文件。

我的問題是,如果更新文件本身需要更新怎麼辦......我將如何去更新它?即使其當前執行,我是否能夠覆蓋它?或者會有一個錯誤,整個事情都會爆炸?我猜想目前的文件存儲在內存中,所以它可以覆蓋自己,但我不知道。

感謝

+0

您是不是要找你擔心併發執行(例如:一個用戶正在下載文件,並且您同時更改文件?) – gerrytan

回答

0

這裏是你可以去了解的一種方式:

  • 只允許主文件的更新通過「超級管理員」頁面
  • 創建「註冊表」,其中的任何部分該程序可以訪問它(有些只能讀取,有些可以寫)
  • 當文件通過superadmin更新時,它會檢查註冊表是否正在讀取文件
  • Whe n superadmin更新它設置'註冊表'的任何文件,說給定的文件正在更新(實際上鎖定它)
  • 當用戶嘗試更新系統時,它檢查註冊表,如果文件設置爲'鎖定「它不會嘗試下載它
  • 當用戶能夠下載它,它設置的註冊表文件說,正在讀(和將其關閉一次完成)