如何在php中执行多任务


How to do multitasking in php

我在php中有一个XML解析器,它读取XML文件并将内容插入数据库。这对单个文件执行此操作。但是我有几百个文件,而且每天还会增加几百个。

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

您可以使用pcntl_fork(),这是"经典的" UNIX fork()方法。注意,这只适用于UNIX/Linux系统和CGI/CLI SAPI。在PHP中没有vfork(),所以它不是很节省内存。

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

我写了一个关于使用pcntl_fork()的小指南,如果你愿意,你可以把它作为一个起点。还有更多的,用谷歌吧。

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

http://www.php.net/manual/en/ref.pcntl.php -在注释中有很多例子

您可以使用php gearman进行多任务处理。它为多机器或多进程提供了一个分布式应用程序框架。它允许应用程序并行完成任务,负载平衡处理,以及在语言之间调用函数。该框架可用于各种应用程序。Gearman是多线程的,每秒可以执行5万个任务。请访问http://gearman.org/download