2013-02-24 40 views
2

我想並行化一個php程序,我用它來讀取一些.xml文件。 我一直googleing和我讀到一些選項:使用exec並行化php()

  • 捲曲
  • 的Gearman
  • EXEC

我也紅認爲,高管是最好的,但我不不明白它是如何工作的。任何人都可以解釋它?

在此先感謝。

+0

閱讀每個手冊,並確定哪一個最適合您的需求... – 2013-02-24 12:31:46

+0

exec不會並行任何東西,因爲它等待產生的進程退出之前退出。 – Jon 2013-02-24 13:10:28

+0

查看http://stackoverflow.com/questions/2101640/patterns-for-php-multi-processes – powtac 2013-02-24 13:31:33

回答

1

exec不會並行化。它在返回之前等待處理完成。捲曲可以使用curl_multi_init()curl_multi_exec()並行化。 fork是相當低的水平。我不知道gearman,我只讀過Basic usage的例子,所以我不能告訴你任何關於它的事情。

+0

'curl' [can parallelize](http://www.php.net/manual/en/function.curl-多exec.php)。 – Jon 2013-02-24 13:11:35

+0

'exec'可以運行後臺進程(請參閱http://php.net/manual/en/function.exec.php#Hcom86329)。它可以被認爲是並行... – tmuguet 2013-02-24 13:39:51

+0

我一直想在我的MacBook上安裝gearman兩個小時,但我could'nt。我試着自己編譯它並用自制軟件安裝它,但沒有。令我煩惱的是安裝過程看起來正確,但是當我想運行我的gearman服務器(%gearmand -d)時,shell輸出'command not found'。 我想我會嘗試與exec()並行,但我不知道該怎麼做。如果有人可以給我一個簡短的解釋或指向一個好的教程或例子的鏈接,那會很棒! 在此先感謝。 – Eneko 2013-02-24 17:14:50