首頁  >  文章  >  後端開發  >  PHP服務端用什麼實作多進程?

PHP服務端用什麼實作多進程?

WBOY
WBOY原創
2016-12-01 00:56:47855瀏覽

php後端會從別的地方請求回來有大量的數據,以數組形式呈現,這些數據需要一個個寫入到數據庫中,單進程實在是太慢了,想用多進程來實現.
查了一些資料,注意到pcntl_**系列的函數,但是這個好像都是只能在命令列裡執行,不能用在服務端.
請問有什麼方式可以實現這個需求呢?

請不吝賜教!

回覆內容:

php後端會從別的地方請求回來有大量的數據,以數組形式呈現,這些數據需要一個個寫入到數據庫中,單進程實在是太慢了,想用多進程來實現.
查了一些資料,注意到pcntl_**系列的函數,但是這個好像都是只能在命令列裡執行,不能用在服務端.
請問有什麼方式可以實現這個需求呢?

請不吝賜教!

你需要的並不是多進程, 而是訊息佇列

web伺服器端收到請求之後, 推送一個訊息到訊息佇列中, 然後直接返回瀏覽器結果 (例如顯示正在處理中)

另外起一個消費訊息佇列的腳本, 長時間運行, 從訊息佇列裡面獲取訊息, 進行處理, 最後再把狀態改成處理完成 (如果你有任務這種概念的話)

在這個層面你需要多進程還是多線程就看你具體的情況了, 多進程或者多線程只對IO密集型運算能夠有提升(從你需要從別的地方請求來大量的數據來看的話還算符合)

滿足你:看看pcntl_fork函數吧

php_swoole 這個比pcntl成熟穩重。另外,是得配合訊息隊列進行處理效果比較好

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn