PHP的這一面對我來說是比較新鮮的。如何在後臺啓動多個PHP腳本?
我有興趣從父腳本中引發大量(25-50)獨立進程。我希望父腳本不要等待這些其他腳本完成,我希望這些其他腳本能夠並行運行。
每個腳本都會運行一段指定的時間來調用web服務。
任何人都可以給我一些方向嗎?我沒有特別要求編碼答案,但我只需要一些指導。
非常感謝。
PHP的這一面對我來說是比較新鮮的。如何在後臺啓動多個PHP腳本?
我有興趣從父腳本中引發大量(25-50)獨立進程。我希望父腳本不要等待這些其他腳本完成,我希望這些其他腳本能夠並行運行。
每個腳本都會運行一段指定的時間來調用web服務。
任何人都可以給我一些方向嗎?我沒有特別要求編碼答案,但我只需要一些指導。
非常感謝。
這真的取決於你想要達到的目標。 @ Julien的分叉方法可以工作,但如果您的Web服務調用是數據密集型的,這不是可取的。我並不是說分叉是相反的,它是有效的,但是隨着你想調用的不同Wev服務的數量的增加,你應該有一種更好的管理方式。
你可以做的另一件事是基於這個cronjobs。例如,如果您爲應用程序中的某些用戶調用這些Web服務,請創建一個隊列 - 一個數據庫表,您可以添加需要處理的記錄。如果您使用Cake,請使用Cake Shells。然後設置一些cronjobs,它們可以調用一些處理這些記錄的shell。劃分所有服務是分開的隊列 - 至少對於那些邏輯上非常不同的人來說。這樣您也可以分擔風險,因爲如果某個Web服務調用出現故障,您不會以某種方式危害所有Web服務。爲每個隊列設置單獨的日誌記錄功能,使您能夠快速追蹤問題。在使用Web服務時,通常問題在應用程序外部。
鮑里斯拉夫,感謝你寫得很好的方法。我一定會考慮你提出的戰略! – Bob
你是指單獨的PHP進程或命令行進程。無論是谷歌的PHP分叉,或PHP的exec可以開始... – dan360
嗨dan360。這將是一個單獨的PHP腳本。我會檢查你記下的兩個項目。謝謝 – Bob