實際測試的時候發(fā)現(xiàn),如果所有的賬戶都退出離線之后,等十幾分鐘之后,再次重新登錄,需要再命令行把服務(wù)重啟才能正常通信。
web-msg-sender里用了mysql?
mysql服務(wù)端會關(guān)閉長時間不活躍的mysql連接,所以第二天你的業(yè)務(wù)就異常了。
web-msg-sender 建議只做推送,不做其它業(yè)務(wù)。
如果你非要在web-msg-sender里使用mysql,有兩種簡單的方案。
方案一:每次使用數(shù)據(jù)庫的時候重新連接,使用完畢后關(guān)閉數(shù)據(jù)庫連接
方案二:把初始化數(shù)據(jù)庫連接放到onWorkerStart里,并加一個定時器定時 select 1 維持mysql連接通訊,類似
$io->on('workerStart', function() {
your_mysql_connect_fun();
Workerman\Timer::add(55, function(){
your_db_query('select 1');
});
};