2013-01-11 94 views
0

我目前正在开发一个Web应用更新系统。它的工作方式就像主服务器是回购站点的版本控制。我的系统和vc之间的区别在于你不能提交/推送等到主服务器。PHP:写入当前文件

这样的想法是:

用户去管理>更新

检查更新

主回购发回所有最新版本的文件列表及其校验

该应用程序根据服务器上的文件检查此列表。如果某些过期/不匹配校验和,则请求这些文件内容,然后在服务器上写入文件。

我的问题是,如果更新文件本身需要更新怎么办......我将如何去更新它?即使其当前执行,我是否能够覆盖它?或者会有一个错误,整个事情都会爆炸?我猜想目前的文件存储在内存中,所以它可以覆盖自己,但我不知道。

感谢

+0

您是不是要找你担心并发执行(例如:一个用户正在下载文件,并且您同时更改文件?) – gerrytan

回答

0

这里是你可以去了解的一种方式:

  • 只允许主文件的更新通过“超级管理员”页面
  • 创建“注册表”,其中的任何部分该程序可以访问它(有些只能读取,有些可以写)
  • 当文件通过superadmin更新时,它会检查注册表是否正在读取文件
  • Whe n superadmin更新它设置'注册表'的任何文件,说给定的文件正在更新(实际上锁定它)
  • 当用户尝试更新系统时,它检查注册表,如果文件设置为'锁定“它不会尝试下载它
  • 当用户能够下载它,它设置的注册表文件说,正在读(和将其关闭一次完成)