如何在PHP中进行多任务处理

时间:2011-07-31 05:00:57

标签: php xml multitasking

我在php中有一个XML解析器,它读取XML文件并将内容插入数据库。这适用于单个文件。但我有数百个文件,每天还会增加数百个。

  1. 那么我该如何在php中执行多任务处理,以便我可以并行处理多个文件。
  2. 如何更有效地完成多任务处理

3 个答案:

答案 0 :(得分:2)

您可以使用pcntl_fork(),这是“经典”的UNIX fork()方法。请注意,这仅适用于UNIX / Linux系统和CGI / CLI SAPI。 AFAIK在PHP中没有vfork(),因此它的内存效率不高。

PHP中没有线程。缺乏适当的多处理可能是该语言的最大障碍。

I wrote a little guide使用pcntl_fork()前一段时间,如果您愿意,可以将其作为起点。还有更多,使用谷歌。

或者,您可以在后台多次启动脚本...根据您的脚本,这可能会更容易......

答案 1 :(得分:0)

http://www.php.net/manual/en/ref.pcntl.php - 评论中有很多例子

答案 2 :(得分:0)

你可以使用php gearman进行多任务处理它提供了一个分布式应用程序框架,可以与多台机器或进程一起工作吗?它允许应用程序并行完成任务,负载均衡处理以及在语言之间调用函数。该框架可用于各种应用程序。 Gearman是多线程的,并且已知能够每秒执行5万个作业。 只需访问http://gearman.org/download