在PHP中同时处理多个XML文件
您好,我正在用PHP制作一个组件,它读取一个atom文件并获取一个XML列表,我需要解析它们并在数据库中插入数据 对于每种类型的XML(新闻、分数、时间表),我都会这样做在PHP中同时处理多个XML文件,php,xml,dom,Php,Xml,Dom,您好,我正在用PHP制作一个组件,它读取一个atom文件并获取一个XML列表,我需要解析它们并在数据库中插入数据 对于每种类型的XML(新闻、分数、时间表),我都会这样做 获取要处理的XML列表 在数据库上插入XML URL并将进程状态设置为0 环游列表 打开XML URL保存到磁盘 过程 放置文件状态=1 下一步 问题是,我的机器上有很多ram和内核,但列表不断增长,待处理的文件越来越多 我想知道我该如何处理,比如说在处理ram和内核的同时处理10个文件,但如果我一次处理一个文件,待处理的列表
我很感谢你对我的英语提出的一些想法和建议你可以在你的第4步中尝试一些类似a的东西。下面是的一个简单实现
您也可以尝试平行卷发。PHP类为运行多个并发CURL请求提供了一个简单的接口。您将数据库用作队列。通常不鼓励这样做(有些软件做得更好),在您的示例中,您遇到了一个典型的问题: 您得到的进程状态字段用值
0
初始化。然后用值0
处理每个条目。假设处理一个条目需要10分钟。每分钟插入一个URL。因此,您需要并行处理10个URL以应对插入率。让我们通过以下方式来实现:
- 因此,在第一分钟插入第一个URL并开始处理它。由于10个处理者使用状态为
的第一个URL,因此所有10个处理者都处理第一个URL0
- 在第二分钟内插入第二个URL,但仍然处理了第一个URL的十倍
- 在第三分钟,您插入第三个URL,但仍然处理第一个URL的十倍