WorkerMan調(diào)式模式MySQL查詢正常,守護(hù)模式(-d啟動(dòng))時(shí),MySQL查詢不到數(shù)據(jù),增刪改查返回空白(注:MySQL操作使用PDO,數(shù)據(jù)庫操作類為自己封裝,Autoloader加載過來)
數(shù)據(jù)庫連接不要提前初始化,建議放在onWorkerStart里初始化
擴(kuò)展實(shí)現(xiàn)不一樣,比如redis擴(kuò)展有重連機(jī)制,pdo沒有。
守護(hù)進(jìn)程時(shí)最開始的啟動(dòng)進(jìn)程fork子進(jìn)程后會(huì)退出,退出時(shí)所有連接資源將會(huì)關(guān)閉,mysql服務(wù)端會(huì)檢測到連接斷開并關(guān)閉連接。但是workerman所有子進(jìn)程由于繼承了同一個(gè)mysql連接資源,所有子進(jìn)程的mysql連接也會(huì)關(guān)閉,pdo mysql沒有重連機(jī)制,使用已經(jīng)斷開的pdo對象就會(huì)出現(xiàn)問題了。但是redis擴(kuò)展自己帶重連功能,所以看著沒問題。
建議初始化都在onWorkerStart中進(jìn)行,畢竟每一個(gè)拓展的底層實(shí)現(xiàn)并不統(tǒng)一,不一定都支持fork后的一些重置初始化操作