PHP异步多文件读写

标签 php http curl http-post

我正在使用基于 cURL 的 php 应用程序向另一个执行异步请求的网络服务器发出请求。所以我正在做的是创建名称为 .req 的文件,其中包含我在返回时需要的信息以及请求中的标识。请求是使用 HTTP-XML-POST 完成的。该文件是使用:-

file_get_contents(reqs/<databaseid>.req, FILE_APPEND);

发生的情况是,当请求批量生成时(每秒大约 1500),响应开始从网络服务器返回。响应被另一个脚本捕获,该脚本从响应中接收并基于它打开请求文件:-

$aResponse = file(reqs/<databaseid>.req);

现在发生的情况是,在大约 15% 的请求中,file() 请求失败并在 apache 日志中生成如下日志条目:-

file(reqs/<databaseid>.req): failed to open stream: No such file or directory in <scriptname> on line <xyz>

已使用稍后运行的清洁脚本验证该文件确实存在。

有什么想法吗?!!!

最佳答案

有一些函数可以处理同时文件访问,例如 flock()但简单地使用数据库通常更容易。任何像样的 DBMS 都已经为您解决了。

关于PHP异步多文件读写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6494857/

相关文章:

php - 使用 PHP 的谷歌分析

angular - 如何以 Angular 获取http响应的状态码?

从 docker 容器到主机超时的 curl 请求

curl - 使用 curl 列出谷歌驱动器文件

PHP-CloudConvert : Peer certificate cannot be authenticated with known CA certificates.

php - 调试 PHP,NetBeans 不适用于 xdebug v3

php - TCG\Voyager 没有得到关于关系的翻译

http - 缓存控制 : 'private' makes 'no-cache="set-cookie"' unnecessary?

javascript - 悬停时停止 jQuery 加载

http - MSXML6.dll Access Denied 将 HTTP 重定向到 HTTPS