CentOS6.2 64位 系統(tǒng) CPU為64位單核CPU 開啟進程數(shù)為1和2都試過了,reload的時候都會斷開Socket鏈
以下摘自workerman手冊
5、平滑重啟
一般的重啟的過程是把所有進程全部停止后,再開始創(chuàng)建全新的服務(wù)進程。在這個過程中會有一個短暫的時間內(nèi)是沒有進程對外提供服務(wù)的,這就會導(dǎo)致服務(wù)暫時不可用,這在高并發(fā)時勢必會導(dǎo)致請求失敗。而平滑重啟則不是一次性的停止所有進程,而是一個進程一個進程的停止,每停止一個進程后馬上重新創(chuàng)建一個新的進程頂替,直到所有舊的進程都被替換為止。
平滑重啟WorkerMan可以使用 php your_file.php reload命令,能夠做到在不影響服務(wù)質(zhì)量的情況下更新應(yīng)用程序
如果是長連接,子進程重啟后這個進程維護的連接就都斷開了,是正常的。
為此官方基于workerman開發(fā)了GatewayWorker框架,Gateway進程維護客戶端連接,連接上發(fā)來數(shù)據(jù)轉(zhuǎn)由BusinessWorker處理,也即是業(yè)務(wù)邏輯都在BusinessWorker上,reload時只reload BusinessWorker即可做到業(yè)務(wù)邏輯更新(只能更新動態(tài)加載的php文件),而Gateway進程默認設(shè)置了http://doc3.workerman.net/worker-development/reloadable.html屬性為false,不執(zhí)行reload,這樣執(zhí)行reload的時候就不會重啟,也就不會導(dǎo)致連接斷開了
GatewayWorker框架手冊:http://gatewayworker-doc.workerman.net/