php - 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 操作系统上
解决方案
推荐阅读
- javascript - 在 chrome 中获取错误的窗口高度
- android - 从通知启动主屏幕时出现 ANR
- javascript - 具有自定义条件的电子邮件的正则表达式
- node.js - 有没有办法手动传递 lambda 函数的事件对象主体中的文件?
- php - 如何将 datetime-local 输入转换为 unix 时间戳?
- three.js - Threebox中的GLTF obj颜色主题
- javascript - socket.io-client 和 useEffect 没有得到更新的反应钩子
- python - 使用 pandas 制作出勤学生报告
- javascript - Webpack 不会将 typescript 编译为 ES5?
- python - 尝试通过 DetailView 构建 url 路径,但在 html 页面中获取重复值