我正在网上搜索最近6个月的内容。我有php应用程序,它使用存储在json文件中的json对象。有谁知道该文件的最大连接数是多少?该文件将在同一时刻多次更新,所以我担心那里可能会出现问题。如果没有取得进展或有类似的进展,是否有某种方法可以阻止更新过程? tnx提前
答案 0 :(得分:0)
您可以在更新时锁定文件,并在尝试更新之前检查锁定。
$fp = fopen("foo.txt", "w");
if (flock($fp, LOCK_EX)) {
fwrite($file,"Write something");
sleep(10);
flock($fp, LOCK_UN);
}
如果您想重试,可以将do
与try, catch
$attempts = 5;
$i = 0;
do {
try
{
yourFunction();
} catch (Exception $e) {
$i++;
sleep(1);
continue;
}
break;
} while($i< $attempts);
function yourFunction() {
$fp = fopen("foo.txt", "w");
if (flock($fp, LOCK_EX)) {
fwrite($file,"Write something");
sleep(10);
flock($fp, LOCK_UN);
}
}