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