我目前正在尝试在php中实现一个作业队列.然后,队列将作为批处理作业处理,并且应该能够并行处理某些作业.
我已经做了一些研究并找到了几种方法来实现它,但我并没有真正意识到它们的优点和缺点.
例如,通过多次调用脚本来执行并行处理,fsockopen如下所述:
PHP中的简单并行处理
我找到的另一种方法是使用这些curl_multi功能.
curl_multi_exec PHP文档
但我认为这两种方式会增加相当多的开销,在队列上创建批处理应该主要在后台运行吗?
我也读到了关于pcntl_fork这似乎也是一种处理问题的方法.但是如果你真的不知道自己在做什么(就像我现在这样;),那看起来就会变得非常混乱.)
我也看了一下Gearman,但在那里我还需要根据需要动态生成工作线程,而不是只运行一些,然后让gearman作业服务器将它发送给自由工作者.特别是因为线程应该在执行一个作业后干净利落地退出,不会遇到最终的内存泄漏(在该问题中代码可能不完美).
Gearman入门
所以我的问题是,你如何处理PHP中的并行处理?为什么选择你的方法,不同的方法有哪些优点/缺点?
感谢您的任何意见.