我已经看到了一些解决方案,包括监视和在后台运行循环(和休眠)脚本,但没有什么是理想的.
我有一个需要每15秒运行一次的脚本,而且由于cron不会支持秒数,所以我只想搞清楚其他事情.
在unix上每15秒运行一个脚本最强大,最有效的方法是什么?脚本还需要在重新启动后运行.
我有一个函数,它接收一个文件名和一个json对象来写入文本文件.
对象已更新,需要完全替换文件的当前内容.每个站点访问者都有自己的文件.多个快速更改会导致文件被截断fopen(file,w+),然后在锁定时不写入.最终结果是空文件.
我确信这是一种标准的简单方法,因为它是一种常见的活动.理想情况下,我正在寻找的方法是在使用fopenin w+模式截断文件或切换模式之前检查文件是否具有锁定.
看起来很奇怪你必须截断文件fopen()来获取一个文件句柄flock()来检查它是否被锁定 - 但你只是截断它,那么重点是什么?
这是我到目前为止的功能:
function updateFile($filename, $jsonFileData) {
$fp = fopen($filename,"w+");
if (flock($fp, LOCK_EX)) {
fwrite($fp, $jsonFileData);
flock($fp, LOCK_UN);
fclose($fp);
return true;
} else {
fclose($fp);
return false;
}
}
Run Code Online (Sandbox Code Playgroud)