swoole提供了完善的進(jìn)程管理機(jī)制,當(dāng)Worker進(jìn)程異常退出,如發(fā)生PHP的致命錯(cuò)誤、被其他程序誤殺,或達(dá)到max_request次數(shù)之后正常退出。? ? ? ? ? ? ? ? (推薦學(xué)習(xí): swoole視頻教程)
主進(jìn)程會(huì)重新拉起新的Worker進(jìn)程。Worker進(jìn)程內(nèi)可以像普通的apache+php或者php-fpm中寫代碼。不需要像Node.js那樣寫異步回調(diào)的代碼。
Worker進(jìn)程
接受由Reactor線程投遞的請(qǐng)求數(shù)據(jù)包,并執(zhí)行PHP回調(diào)函數(shù)處理數(shù)據(jù)
生成響應(yīng)數(shù)據(jù)并發(fā)給Reactor線程,由Reactor線程發(fā)送給TCP客戶端
可以是異步非阻塞模式,也可以是同步阻塞模式
Worker以多進(jìn)程的方式運(yùn)行
worker_num
描述:指定啟動(dòng)的worker進(jìn)程數(shù)。
說明:swoole是master-> n * worker的模式,開啟的worker進(jìn)程數(shù)越多,server負(fù)載能力越大,但是相應(yīng)的server占有的內(nèi)存也會(huì)更多。同時(shí),當(dāng)worker進(jìn)程數(shù)過多時(shí),進(jìn)程間切換帶來的系統(tǒng)開銷也會(huì)更大。因此建議開啟的worker進(jìn)程數(shù)為cpu核數(shù)的1-4倍。
示例:
'worker_num'?=>?8