下面兩個圖是我分別重啟后截圖,默認都是從client_id=1開始遞增。
這樣是不是一旦項目上線后,就不能關閉重啟了,只能通過平滑重啟,不然clietn_id與數(shù)據(jù)庫的uid對不上了?或者有沒有其他解決辦法?
查看源碼發(fā)現(xiàn),client_id是通過ip+端口+connection_id的16進制,connection_id是當前連接數(shù),所以workerman重啟后,connection_id就從1重新開始計算了。
/**
* 生成connection id
* @return int
*/
protected function generateConnectionId()
{
$max_unsigned_int = 4294967295;
if (self::$_connectionIdRecorder >= $max_unsigned_int) {
self::$_connectionIdRecorder = 0;
}
while(++self::$_connectionIdRecorder <= $max_unsigned_int) {
if(!isset($this->_clientConnections[self::$_connectionIdRecorder])) {
break;
}
}
return self::$_connectionIdRecorder;
}