我有一个json文件。我使用file_get_contents获取所有内容,并将内容放在名为$ js的变量中。然后我追加新数据或者从$ js变量中删除一些数据。然后我使用file_put_contents将数据覆盖到json文件。但是很多用户都会使用它。
有没有办法同步它。就像一个用户使用了file_get_contents,直到他覆盖它,其他用户将不得不等待。我在想像信号量这样的东西。据我所知,flock不起作用,因为我没有打开json文件来读写。
答案 0 :(得分:1)
是的,信号量应该可以解决问题。虽然这需要额外的机制来排队传入的查询(对你的json文件的修改),这听起来可能会出现无状态编程问题。
您可以尝试反复发送请求,直到您成功修改文件,但这很糟糕。我看,你可以使用多线程(http://php.net/manual/en/intro.pthreads.php)。一个用于管理queres的线程:
第二个线程可用于读取数据库或文件(取决于实现)并修改您的json文件。