添加节点相关日志

This commit is contained in:
aozhiwei 2020-07-04 21:14:55 +08:00
parent bb0133c8b9
commit 72dd914c79

View File

@ -96,6 +96,20 @@ void SvrMgr::_SS_IM_ReportServerInfo(f8::MsgHdr& hdr, const ss::SS_IM_ReportServ
svr->port = msg.port(); svr->port = msg.port();
svr->servicing = msg.servicing(); svr->servicing = msg.servicing();
svr->last_active_tick = a8::XGetTickCount(); svr->last_active_tick = a8::XGetTickCount();
a8::UdpLog::Instance()->Info
(
"register new node socket_handle:%d node_idx:%d instance_id:%d "
"ip:%s port:%d online_num:%d servicing:%d",
{
svr->socket_handle,
svr->node_idx,
svr->instance_id,
svr->ip,
svr->port,
svr->online_num,
svr->servicing
}
);
node_key_hash_[key] = svr; node_key_hash_[key] = svr;
socket_hash_[hdr.socket_handle] = svr; socket_hash_[hdr.socket_handle] = svr;
node_sorted_list_.push_back(svr); node_sorted_list_.push_back(svr);
@ -182,16 +196,15 @@ SvrNode* SvrMgr::AllocNode(const std::string& account_id)
if (friend_data && friend_data->svr_node) { if (friend_data && friend_data->svr_node) {
return friend_data->svr_node; return friend_data->svr_node;
} }
if (node_sorted_list_.empty()) { if (!node_sorted_list_.empty()) {
return nullptr; size_t rnd = std::min((size_t)2, node_sorted_list_.size());
} int idx = rand() % rnd;
size_t rnd = std::min((size_t)2, node_sorted_list_.size()); while (idx >= 0) {
int idx = rand() % rnd; if (node_sorted_list_[idx]->servicing) {
while (idx >= 0) { return node_sorted_list_[idx];
if (node_sorted_list_[idx]->servicing) { }
return node_sorted_list_[idx]; --idx;
} }
--idx;
} }
a8::UdpLog::Instance()->Warning("节点分配失败 node_sorted_list.size:%d node_list.size:%d", a8::UdpLog::Instance()->Warning("节点分配失败 node_sorted_list.size:%d node_list.size:%d",
{ {
@ -257,6 +270,22 @@ SvrNode* SvrMgr::GetNodeBySocket(int socket_handle)
void SvrMgr::RemoveNode(SvrNode* svr_node) void SvrMgr::RemoveNode(SvrNode* svr_node)
{ {
{
a8::UdpLog::Instance()->Warning
(
"remove node socket_handle:%d node_idx:%d instance_id:%d "
"ip:%s port:%d online_num:%d servicing:%d",
{
svr_node->socket_handle,
svr_node->node_idx,
svr_node->instance_id,
svr_node->ip,
svr_node->port,
svr_node->online_num,
svr_node->servicing
}
);
}
{ {
for (size_t i = 0; i < node_sorted_list_.size(); ++i) { for (size_t i = 0; i < node_sorted_list_.size(); ++i) {
if (node_sorted_list_[i] == svr_node) { if (node_sorted_list_[i] == svr_node) {