2

我在我的数据库中设置了一些条目来在 php 中运行一些脚本。所以我会每隔几分钟运行一个 cron 文件,看看接下来的几分钟我是否有一些脚本要运行,我会触发它们,我想知道如果我有一个脚本要在 12:10 执行会发生什么在 5 分钟内,如果我有另一个请求在 12:12 运行相同的脚本,而第一个脚本的执行尚未完成,会发生什么情况。文件是否被锁定直到执行完成?要不然是啥?

它是在不同时间执行的同一个文件。

我想我可以用 cron 选项卡做到这一点,但我不喜欢那样。

4

2 回答 2

2

它们同时运行不会有问题,但请记住,如果它们将写入同一个文件/数据库表,您可能会遇到问题。

于 2012-11-26T17:21:58.450 回答
2

它将运行脚本两次、三次或任意多次。如果您只想一次运行这个脚本,您可以创建一个锁定文件,然后检查它是否存在。例子:

if(file_exists('/tmp/script.lock')){
  exit();
}
file_put_contents('/tmp/script.lock','');

// execute code

unlink('/tmp/script.lock');
于 2012-11-26T17:23:20.177 回答