/// <summary> /// 时间处理 /// <summary> void CDanceGroupFairlyLandProcessor::NewDayProcess(time_t tNow) { // 先清理内存,然后清理数据库 if ( !IsSameDay(m_nPrvCheckTime, tNow) ) { NewDayClear(); } }
void ActivenessComponent::ResetActivinessData(time_t nNow) { if (IsSameDay(m_nUpdateTime, nNow)) return; // m_nUpdateTime = (unsigned int)nNow; m_nActivenessScore = 0; m_setRewardLevelScore.clear(); m_mapTargetProgress.clear(); m_setFinishedDanceMode.clear(); return; }
void CLogerManager::Run() { m_bRuning = true; m_loggers[LOG4Z_MAIN_LOGGER_ID]._enable = true; PushLog(0, LOG_LEVEL_ALARM, "----------------- log4z thread started! ----------------------------"); for (int i=0; i<LOG4Z_LOGGER_MAX; i++) { if (m_loggers[i]._enable) { std::stringstream ss; ss <<"logger id=" <<i <<" path=" <<m_loggers[i]._path <<" name=" <<m_loggers[i]._name <<" level=" << m_loggers[i]._level <<" display=" << m_loggers[i]._display; PushLog(0, LOG_LEVEL_ALARM, ss.str().c_str()); } } m_semaphore.Post(); LogData * pLog = NULL; char *pWriteBuf = new char[LOG4Z_LOG_BUF_SIZE + 512]; int needFlush[LOG4Z_LOGGER_MAX] = {0}; while (true) { while(PopLog(pLog)) { // m_ullStatusTotalPopLog ++; //discard LoggerInfo & curLogger = m_loggers[pLog->_id]; if (!curLogger._enable || pLog->_level <curLogger._level ) { delete pLog; pLog = NULL; continue; } //update file if (LOG4Z_ALL_WRITE_TO_FILE) { bool sameday = IsSameDay(pLog->_time, curLogger._curFileCreateTime); bool needChageFile = curLogger._curWriteLen > curLogger._limitsize*1024*1024; if (!curLogger._handle.IsOpen() || !sameday || needChageFile) { if (!sameday) { curLogger._curFileIndex = 0; curLogger._curWriteLen = 0; } else if ( needChageFile) { curLogger._curFileIndex ++; curLogger._curWriteLen = 0; } curLogger._curFileCreateTime = pLog->_time; if (!OpenLogger(pLog->_id)) { curLogger._enable = false; delete pLog; pLog = NULL; ShowColorText("log4z: Run can not update file, open file false! \r\n", LOG_LEVEL_FATAL); continue; } } } //record tm tt; if (!TimeToTm(pLog->_time, &tt)) { memset(&tt, 0, sizeof(tt)); } sprintf(pWriteBuf, "%d-%02d-%02d %02d:%02d:%02d.%03d %s %s \r\n", tt.tm_year+1900, tt.tm_mon+1, tt.tm_mday, tt.tm_hour, tt.tm_min, tt.tm_sec, pLog->_precise, LOG_STRING[pLog->_level], pLog->_content); if (LOG4Z_ALL_WRITE_TO_FILE) { size_t writeLen = strlen(pWriteBuf); curLogger._handle.Write(pWriteBuf, writeLen); curLogger._curWriteLen += (unsigned int)writeLen; needFlush[pLog->_id] ++; m_ullStatusTotalWriteFileCount++; m_ullStatusTotalWriteFileBytes += writeLen; } else { size_t writeLen = strlen(pWriteBuf); m_ullStatusTotalWriteFileCount++; m_ullStatusTotalWriteFileBytes += writeLen; } if (curLogger._display && !LOG4Z_ALL_SYNCHRONOUS_DISPLAY) { ShowColorText(pWriteBuf, pLog->_level); } delete pLog; pLog = NULL; } for (int i=0; i<LOG4Z_LOGGER_MAX; i++) { if (m_loggers[i]._enable && needFlush[i] > 0) { m_loggers[i]._handle.Flush(); needFlush[i] = 0; } } //! delay. SleepMillisecond(100); //! quit if (!m_bRuning && m_logs.empty()) { break; } } for (int i=0; i<LOG4Z_LOGGER_MAX; i++) { if (m_loggers[i]._enable) { m_loggers[i]._enable = false; m_loggers[i]._handle.Close(); } } delete []pWriteBuf; pWriteBuf = NULL; }
void UserLogin::handle_WG_UserLogin(Event* e) { const NewStar_Rsp& rsp = e->newstarrsp(); const UserLogin_Req& req = e->userlogin_req(); int64 uid = req.uid(); if(uid<=0) return; int nPhysicsRegion = getPhysicsRegion(uid); //判断所属物理分区是否正确 if(nPhysicsRegion != serverConfig.GetPhysiceRegionByGame(eh_->GetSrvID())) return; GameDataHandler* dh = eh_->getDataHandler(); const string& platid = req.platform_id(); int siteid = req.siteid(); const string& name = req.name(); const string& profile_link = req.profile_link(); int gender = (req.gender() == 0) ? Gender_Girl : Gender_Boy ; vector<string> friends_platid; for (int i = 0; i < req.friends_platid_size(); i ++) { friends_platid.push_back(req.friends_platid(i)); } bool isYellowDmd = req.is_yellow_dmd(); bool isYellowDmdYear = req.is_yellow_dmd_year(); int lvlYellowDmd = req.yellow_dmd_lv(); bool isHighYellowDmd = req.is_high_yellow_dmd(); bool isHighDmdYear = req.is_high_dmd_year(); int nBlueTime = req.bluetime(); int nBlueYearTime = req.blueyeartime(); int nHighBlueTime = req.highbluetime(); int nHighYearTime = req.highblueyeartime(); int webfd = req.webfd(); string sid = req.sid(); int region = req.region(); int nCity = req.city(); string strVIA = req.via(); //玩家渠道 bool isRecall = req.isrecall(); int nCustomFlag = req.customflag(); int nBackFlowFlag = req.nbackflowflag(); const WebCrossPromotion* pWebPromotion = e->mutable_userlogin_req()->mutable_promotion(); string strChanel = pWebPromotion->chanle(); LOG4CXX_INFO(logger_, "World request UserLogin with openid: " << platid); //if(dh->GetUserID(platid,region)!=uid) //{ // dh->AddUserID(platid,region,uid); //} LoadStatus state = LOAD_INVALID; User* user = processUserLogin(uid,platid, siteid, name, profile_link, gender, friends_platid, isYellowDmd, isYellowDmdYear, lvlYellowDmd, state, region,nCity,req.isnewplayer(),strVIA,isHighYellowDmd,strChanel,isHighDmdYear,nBlueTime,nBlueYearTime,nHighBlueTime,nHighYearTime, rsp.id(), rsp.name(), rsp.type(), rsp.sku()); if (user != NULL) { UserLogin_Rsp* rsp = e->mutable_userlogin_rsp(); rsp->set_server(eh_->getServerIp()); rsp->set_port(eh_->getServerPort()); rsp->set_port1(eh_->getServerPort1()); rsp->set_uid(user->GetUid()); rsp->set_secret(user->secret(eh_->getReversion())); rsp->set_webfd(webfd); rsp->set_sid(sid); rsp->set_region(region); rsp->set_mainload("0");//此项已失效 rsp->set_version(FlashVersionCfg::Instance().GetCfgVersion(eh_->GetSrvID())); rsp->set_gettime(req.gettime()); rsp->set_platform_id(req.platform_id()); rsp->set_playerlvl(user->GetUserLevel()); rsp->set_logintimes(IsSameDay(user->GetLastLoginTime(),time(NULL))?1:0); rsp->set_isnewplayer(req.isnewplayer()); rsp->set_customflag(req.customflag()); rsp->set_channel(strChanel); #if 0 user->SetUndealGiftCount(req.undealgiftcnt()); user->SetUndealFrdGiftCount(req.undealfrdgiftcnt()); user->SetInviteFrdCnt(req.invitefrdcnt()); user->SetDayInviteFrdCnt(req.invitefrdcntday()); user->SetDayWebGiftSendCnt(req.daysendgiftcnt()); user->SetChannel(strChanel); user->GetDbUser().set_badult((req.nadultflag() >= 100)?true : false); bool bIsNewInvite = false; if (user->SetPlatInviteFriendOpenid(req.invitefriendid())) { bIsNewInvite = true; } user->GetDbUser().mutable_player()->set_yellowdmdtime(req.yellowdmdtime()); if (req.isnewplayer() && bIsNewInvite) { HttpRequireHandler::Instance().SafePushHttpAcceptToQQ(user, user->GetPlattype()); } else if (req.isnewplayer()) { HttpRequireHandler::Instance().SafePushHttpSelfRegistToQQ(user, user->GetPlattype()); } HttpRequireHandler::Instance().SafePushHttpLogOnToQQ(user, user->GetPlattype()); user->GetDbUser().set_isactivelogon( req.isapp51act() ); RceInviteFriend* pinviteMsg = e->mutable_ce_rceinvitefriend(); user->GetPlayer()->SetInviteFrdCntGain(pinviteMsg->friendcount(),pinviteMsg->giftgain()); //交叉推广 //if(strChanel.size()>0) //{ // user->m_mapChanlelFirst[strChanel] += 1; //} user->SetCrossPromotion(pWebPromotion); for ( int i = 0; i < req.invitegiftrecord_size(); i++ ) { DB_InvitedFriendLvGift* pDBInvitedFriendLvGift = user->GetPlayer()->GetDBInvitedFriendLvGift(req.invitegiftrecord(i)); if ( pDBInvitedFriendLvGift == NULL ) { continue; } pDBInvitedFriendLvGift->set_hasget( true ); } #endif e->clear_userlogin_req(); e->set_state(UserLogin_GW_Rsp); eh_->sendEventToWorld(e); user->InitRc4Key(rsp->logintimes(),sid); #if 0 if(user->GetUserLevel() != req.level()) { eh_->SendUserInfo2Plat(user,UpdatePlat_Level); } //if(user->GetPlayer()->GetDBPlayer()->invite_platid_size()>0) //{//分服前后数据同步 // eh_->SendUserInfo2Plat(user,1); // user->GetPlayer()->GetDBPlayer()->clear_invite_platid(); //} //召回老友统计 if ( isRecall ) { SYS_UserStat(user,false,"CallBackFrdBack",1,"","",""); } if ( nCustomFlag > 0 ) { //2015.03.10空间广告位回流 const CostGiftTbl *pCostTbl = CostGiftCfg::Instance().GetCostGiftTbl(10098); DB_QQBackFlow* pDBQQBackFlow = user->GetPlayer()->GetDBPlayer()->mutable_qqrightbackflowflag(); if (pCostTbl != NULL && pCostTbl->IsCurrentTime() && pDBQQBackFlow != NULL && pDBQQBackFlow->actflag() != pCostTbl->m_tBeginTime) { //user->GetPlayer()->GetDBPlayer()->set_customflagtime( time(NULL) ); SYS_LOG(user->GetPlayer()->GetUserID(),LT_COST_GIFT_CUSTOM_FLAG,0,0,0); pDBQQBackFlow->Clear(); pDBQQBackFlow->set_actflag(pCostTbl->m_tBeginTime); pDBQQBackFlow->set_curstate(1); } } if (nBackFlowFlag == 1) {//空间顶部应用墙回流 if ( user->GetPlayer()->GetDBPlayer()->qqtopbackflowflag() == 0) { user->GetPlayer()->GetDBPlayer()->set_qqtopbackflowflag(1); } } else if (nBackFlowFlag == 2) {//空间顶部应用墙回流 if ( user->GetPlayer()->GetDBPlayer()->qqleftbackflowflag() == 0) { user->GetPlayer()->GetDBPlayer()->set_qqleftbackflowflag(1); } } else if (nBackFlowFlag == 4) { if(user->GetPlayer()->GetDBPlayer()->qqtenyearbackflowflag() == 0) { user->GetPlayer()->GetDBPlayer()->set_qqtenyearbackflowflag(1); } } if ( bIsNewInvite ) { ConstantSetUnit* pUnit = GameConstantSetCfg::Instance().GetGameConstantSet(E_GAMECONSTANTSET_DEF_HOLIDAY_INVITE); if ( pUnit != NULL ) { time_t now = time(NULL); time_t tBeginTime = GetDayTimeByStr( pUnit->m_strArgs[0].c_str(), pUnit->m_strArgs[1].c_str() ); time_t tEndTime = GetDayTimeByStr( pUnit->m_strArgs[2].c_str(), pUnit->m_strArgs[3].c_str() ); if( now >= tBeginTime && now <= tEndTime ) { user->GetPlayer()->GetDBPlayer()->set_canholidayinvitegiftsend(true); } } } user->GetPlayer()->GetDBPlayer()->set_qqtaskstep( req.qqtaskstep() ); #endif dh->markUserDirty(user); } else { if (state == LOAD_WAITING) { eh_->postBackEvent(e); } } }
bool CDanceGroupFairlyLandProcessor::NeedDoLastDayClear(time_t nLastTime, time_t now) { // 不是同一天的数据,则需要清理 return !IsSameDay(nLastTime, now); }
bool CEntityCheckInComponent::IsTodayCheckIn() { return IsSameDay(m_CheckInInfo.m_nCheckInTime, time(NULL)); }
virtual void Run() { m_bRuning = true; PushLog(GetMainLogger(), LOG_LEVEL_ALARM, "----------------- log4z thread started! ----------------------------"); for (int i=0; i<LOGGER_MAX; i++) { if (m_loggers[i]._enable) { std::stringstream ss; ss <<" logger id=" <<i <<" path=" <<m_loggers[i]._path <<" name=" <<m_loggers[i]._name <<" level=" << m_loggers[i]._level <<" display=" << m_loggers[i]._display; PushLog(GetMainLogger(), LOG_LEVEL_ALARM, ss.str().c_str()); } } m_semaphore.Post(); LogData * pLog = NULL; #ifdef WIN32 char text[LOG_BUF_SIZE+MAX_PATH+512] = {0}; #else char text[LOG_BUF_SIZE+PATH_MAX+512] = {0}; #endif int needFlush[LOGGER_MAX] = {0}; int maxCount = 0; while (true) { while(PopLog(pLog)) { //discard if (!m_loggers[pLog->_id]._enable || pLog->_level <m_loggers[pLog->_id]._level ) { delete pLog; pLog = NULL; continue; } //update file if (!m_loggers[pLog->_id]._handle.is_open() || !m_loggers[pLog->_id]._handle.good() || !IsSameDay(pLog->_time, m_loggers[pLog->_id]._filetime)) { m_loggers[pLog->_id]._filetime = pLog->_time; if (!OpenLogger(pLog->_id)) { m_loggers[pLog->_id]._enable = false; delete pLog; pLog = NULL; continue; } } //record tm tt; if (!TimeToTm(pLog->_time, &tt)) { memset(&tt, 0, sizeof(tt)); } sprintf(text, "%d-%02d-%02d %02d:%02d:%02d %s %s \r\n", tt.tm_year+1900, tt.tm_mon+1, tt.tm_mday, tt.tm_hour, tt.tm_min, tt.tm_sec, LOG_STRING[pLog->_level], pLog->_content); m_loggers[pLog->_id]._handle.write(text, (std::streamsize)strlen(text)); if (m_loggers[pLog->_id]._display) { ShowColorText(text, pLog->_level); } needFlush[pLog->_id] ++; maxCount++; m_ullStatusTotalWriteCount++; m_ullStatusTotalWriteBytes+=strlen(text); delete pLog; pLog = NULL; if (maxCount > 1000) { //flush maxCount = 0; for (int i=0; i<LOGGER_MAX; i++) { if (m_loggers[i]._enable && needFlush[i] > 0) { m_loggers[i]._handle.flush(); needFlush[i] = 0; } } } } //flush if (maxCount > 0) { //flush maxCount = 0; for (int i=0; i<LOGGER_MAX; i++) { if (m_loggers[i]._enable && needFlush[i] > 0) { m_loggers[i]._handle.flush(); needFlush[i] = 0; } } } //stopped if (!m_bRuning) { break; } //delay. SleepMillisecond(100); } for (int i=0; i<LOGGER_MAX; i++) { if (m_loggers[i]._enable) { m_loggers[i]._handle.close(); } } }