防止多个用户同时写文件

时间:2019-06-20 09:16:23

标签: php python concurrency

我已经完成了一个php页面index.php,该页面使用一些python脚本来检索一些信息并将它们从文件 A 复制到文件 B 。我的问题是,如果我有多个用户访问index.php,则两个用户的 B 都会被修改。如何让第二个用户等到第一个用户完成对 B 的修改?

2 个答案:

答案 0 :(得分:0)

假设我们有一个名为“ CopyIt”的函数。

然后让我们想象一个用户正在请求执行index.php。处理此请求的最简单方法是这种情况:

-首先,index.php要调用CopyIt,但是!它不会直接调用它从A复制到B! index.php会将此请求(复制内容)放入Cronjob中,操作系统将在保留的时间执行该请求。

现在,对于运行这种情况,我的建议是:

  1. 制作一个名为以下文件的php文件:CopyAtoB.php [稍后将通过php执行此文件]

  2. 在CopyAtoB.php中编写整个函数(代码)

  3. 为index.php收到的每个请求保留时间。

  4. 使用Cronjob文件计划您的保留任务。 (有关如何使用cronjob的更多信息: https://opensource.com/article/17/11/how-use-cron-linux

好运

答案 1 :(得分:0)

您可以并行制作一个文件xyz.txt.in_use,然后每次从其他位置检查该文件是否存在,或者不等它被删除,然后在写入完成后删除xyz.txt.in_use ,以便其他人可以在xyz.txt

上负责