php多進程框架:MultiThread
php基于pcntl擴展實現的多進程框架。
有以下幾種優點:
1、子進程數量的控制
2、鉤子形式的運行子進程,方便代碼實現
3、3種不同的方式導入任務(數組輸入、運行次數輸入、動態加載)
4、子進程運行結果的收集(3種收集方式:文件、System V message queue、redis,推薦使用redis)
5、支持對子進程返回結果處理,并通過鉤子方式來定義自己的處理過程
注意事項:
1、建議不開啟子進程返回結果,因為這樣需要使用中間件來傳遞結果影響效率,能在子進程中處理盡量在子進程中處理
2、使用System V message queue為中間件的注意隊列的總大小和單個消息的大小,如果返回結果大小超過單個消息的大小將會發生消息失敗
3、非要使用消息中間件,建議使用redis
4、_fork($arg) 方法需要有輸入參數,在子進程任務輸入方式是次數時,$arg為null
5、_addTask() 方法返回的一定為數組,里面的元素對應 _fork($arg) 中的$arg
6、在開啟子進程結果處理方法時,MultiThread 的 run() 方法是不會有返回值
7、注意php需要的擴展是否安裝,基本擴展需要有pcntl。同時也注意中間件的擴展是否安裝,如果使用的話
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!