我最近创建了一个功能,用户可以使用名为php.git的php-git库选择较旧版本或新版本的文本。
当用户选择旧版本/标签号时,php会检出本地git存储库,然后从源树中的该点加载文件。
我的问题是:如果不止一个人同时尝试访问该网站,这会成为一个问题吗?
这些用户可能会相互竞争,反复检查git repo到不同的分支。
我想知道是否最好快速执行类似git-archive到temp文件夹的操作,然后从temp文件夹加载所需的文件,但始终将主repo本身保留在head / master位置。
有任何想法或疑虑吗?
答案 0 :(得分:0)
是的,如果你所有的PHP进程只是在不屈服的情况下写入同一目录,那么你就有明显的竞争条件。
您应该链接到您正在使用的库,因此很清楚。到目前为止,您应该使用库提取所需版本的内容,然后将其缓存(例如在memacached中)一段合理的时间。