PHP异步多文件写入和读取

时间:2011-06-27 14:59:22

标签: php http curl http-post

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

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

当请求是批量生成(大约每秒 1500 )时,响应开始从Web服务器返回。响应由另一个脚本捕获,该脚本从响应中接收并使用以下命令打开请求文件: -

$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>

已经使用更清晰的脚本验证了该脚本,该脚本稍后运行,该文件确实存在。

有什么想法吗?!!!

1 个答案:

答案 0 :(得分:1)

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