首页 > 解决方案 > PHP的文件锁定

问题描述

我的应用程序的核心使用 curl 获取内容,我希望缓存经常获取的内容。我在回调中使用标题末尾打开文件CURLOPT_HEADERFUNCTION,并将写入数据写入CURLOPT_WRITEFUNCTION回调中缓存。然后我将关闭请求末尾的文件(bytes == content_length)

file_put_contents在此线程所证明的情况下效率非常低。

现在假设 2 个用户想要获取相同的内容(进程 A 和 B)。假设进程 A 已锁定文件并正在写入。

1.进程B还能从文件中读取吗?LOCK_EX|LOCK_SH如果我没记错的话,操作应该是。

2.如果进程可以同时读取或写入同一个文件,当进程B已经读取所有数据时会发生什么,它是否等待进程A写入文件?

让我知道如何改进我的策略。

PS 我在 Centos 7 操作系统上

标签: phpfileunixcurlphp-curl

解决方案


推荐阅读