[英]Process Multiple XML files at the same time in PHP
你好,我正在用 PHP 制作一个组件,它读取原子文件并获取进程的 xml 列表,我需要解析它们并将数据插入数据库。
对于每种类型的 XML(新闻、比分、时间表),我都会做这样的事情
问题是我的机器上有很多内存和内核,但列表不断增长,待处理的待处理文件总是越来越大。
我想知道如何在处理 ram 和内核的同时处理 10 个文件,但是如果我在某个时间处理一个待处理的列表,则它总是会变大。
我感谢一些想法并为我的英语道歉
您将数据库用作队列。 这通常是不鼓励的(有软件可以做得更好),并且您在示例中遇到了一个典型的问题:
您获得的进程状态字段已初始化为值0
。 然后处理值为0
每个条目。 假设处理一个条目需要 10 分钟。 然后每分钟插入一个 URL。 所以你需要并行处理10个URL来应对插入率。 让我们玩这个:
所以在第一分钟你插入第一个 URL 并开始处理它。 由于 10 个处理器采用状态为0
的第一个 URL,因此所有 10 个处理器都处理第一个 URL。
在第二分钟,您插入第二个 URL,并且您仍然处理第一个 URL 的十倍。
在第三分钟,您插入第三个 URL,并且您仍然处理第一个 URL 的十倍。
等等。 你得到了图片。 状态管理不善。 当您设计自己的队列系统时,您需要注意它是否适用于并行需求。 您应该为此创建一个组件并使用假数据和日志对其进行彻底测试,以便您可以跟踪和验证它的操作。 然后将这样的系统用于真实的事物。 它可能不会做你想做的一切,但它应该工作得更健壮。
或者,为已经创建的队列获取一个组件,已经过测试并且已经过工作证明。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.