Explorar o código

登录时长异步多算问题

zhangweicheng %!s(int64=4) %!d(string=hai) anos
pai
achega
31cbf8ec34
Modificáronse 1 ficheiros con 3 adicións e 1 borrados
  1. 3 1
      logs/online_logs.js

+ 3 - 1
logs/online_logs.js

@@ -25,6 +25,8 @@ async function saveOnlineTime(req) {
             return
             return
         }
         }
         if(!req.session.sessionUser||!req.session.sessionCompilation) return;
         if(!req.session.sessionUser||!req.session.sessionCompilation) return;
+        //先设置session再更新,在多个服务器多请求的情况下,update完再设置回session可能会造成多算时间
+        req.session.online_start_time = end;
         let dataString = moment(end).format('YYYY-MM-DD');
         let dataString = moment(end).format('YYYY-MM-DD');
         let condition = {userID:req.session.sessionUser.id,compilationID:req.session.sessionCompilation._id,dateString:dataString};
         let condition = {userID:req.session.sessionUser.id,compilationID:req.session.sessionCompilation._id,dateString:dataString};
         let userCondition = {_id: mongoose.Types.ObjectId(req.session.sessionUser.id)};
         let userCondition = {_id: mongoose.Types.ObjectId(req.session.sessionUser.id)};
@@ -43,5 +45,5 @@ async function saveOnlineTime(req) {
         console.log("统计登录时间错误,online_times值:"+online_times);
         console.log("统计登录时间错误,online_times值:"+online_times);
         console.log(e);
         console.log(e);
     }
     }
-    req.session.online_start_time = end;
+    
 }
 }