我有一个start_processing("set 1")
函数需要6小时才能完成set1,
我想处理第2组,设置3 ....如何在同一时间处理所有这些?从我放的时候开始
<?php
start_processing("set1");
start_processing("set2");
start_processing("set3");
?>
需要18小时。
我希望在6小时内完成所有处理过程。
最后我得到了一个解决方案
我已经 curl_multi - 它好得多。保存握手 - 每次都不需要它们!
使用 curl_multi_init 并行运行流程。这会产生巨大的影响。
答案 0 :(得分:1)
除非您使用PHP作为Apache模块,否则可以使用pcntl_fork创建多个进程,每个进程处理一个函数调用。
if(pcntl_fork())
start_processing("set1");
else if(pcntl_fork())
start_processing("set2");
else
start_processing("set3");
如果你有不同数量的工作集,只需将它们放在一个数组中并循环遍历它。请记住,太多的进程可能会使您的系统过载!
另一个更轻量级的选项是使用php pthreads AFAIK与Apache一起使用,但需要先安装相应的php-extension。
如sandeep_kosta和Niranjan N Raju所述,第三种可能性是为每个工作集创建一个Cronjob。