PHP有像bash这样的工作控制吗?

时间:2010-04-19 00:11:33

标签: php multithreading job-control

PHP在bash(forking)中支持类似于&符号的东西吗?假设我想在两个网页上同时使用cURL,所以脚本不必在第一次cURL命令完成之前等待,怎么能在PHP中实现呢?在bash中有类似的东西:

 curl www.google.com &
 curl www.yahoo.com &
 wait

4 个答案:

答案 0 :(得分:1)

PHP支持bash(forking)中的&符号吗?
否。请参阅其他答案,但我确实指出PCNTL扩展仅为UNIX。

...如何在PHP中实现这一目标?*
cURL supports running multiple downloads concurrently

答案 1 :(得分:1)

您可以使用popenproc_open打开一个流程并让它在后台运行,但是对于后台操作没有语言支持,例如bash(已制作)无论如何,运行任务; PHP是为脚本编写的东西。)

使用proc_open,您可以使用proc_get_status来了解进程何时终止。我担心没有wait等价物。

答案 2 :(得分:0)

如果你真的想要,你可以编写异步方法,但这是很多工作,如果你使用PHP,可能是一个糟糕的设计理念。

答案 3 :(得分:0)

某种排队机制通常更可取。 Gearman是一种可以使用的开源排队机制。我还在Zend Server作业队列上有一篇博文,讨论异步运行任务Do you queue? Introduction to the Zend Server Job Queue

您还可以使用Zend Framework Queuing类之类的东西来实现一些异步工作。 Zend_Queue