From b0f7b10a02725db57ef5654f189a81846e237dae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=AE=B7=E5=8B=87?= Date: Fri, 27 Oct 2023 15:25:18 +0800 Subject: [PATCH] save --- server/mailserver/mail/mail.go | 2 +- server/mailserver/mail/mailstore.go | 1 - server/mailserver/player/player.go | 9 +++++---- server/mailserver/player/playermgr.go | 4 +++- 4 files changed, 9 insertions(+), 7 deletions(-) diff --git a/server/mailserver/mail/mail.go b/server/mailserver/mail/mail.go index f59e164f..50e12cca 100644 --- a/server/mailserver/mail/mail.go +++ b/server/mailserver/mail/mail.go @@ -85,7 +85,7 @@ func (m *Mail) IsReadableMail(accountObj common.Player) bool { } } nowUnixSec := int32(time.Now().Unix()) - if m.ExpireTime > nowUnixSec && m.SendTime <= nowUnixSec && !accountObj.IsDeletedMail(m.MailId) { + if m.ExpireTime > nowUnixSec && m.SendTime <= nowUnixSec && accountObj.IsUnreadMail(m.MailId) { return true } diff --git a/server/mailserver/mail/mailstore.go b/server/mailserver/mail/mailstore.go index fa1ed696..27da7a4d 100644 --- a/server/mailserver/mail/mailstore.go +++ b/server/mailserver/mail/mailstore.go @@ -66,7 +66,6 @@ func (mm *MailMgr) GetMails(player common.Player) []*Mail { resMailList = append(resMailList, pMail) } } - return resMailList } diff --git a/server/mailserver/player/player.go b/server/mailserver/player/player.go index 34eb30d1..6cb31aba 100644 --- a/server/mailserver/player/player.go +++ b/server/mailserver/player/player.go @@ -45,8 +45,8 @@ func (p *Player) GetRegisterTime() int32 { } func (p *Player) IsUnreadMail(mailId int64) bool { - m := p.ReadMailHash[mailId] - return m == nil + _, exists := p.ReadMailHash[mailId] + return !exists } func (p *Player) IsDeletedMail(mailId int64) bool { @@ -72,7 +72,6 @@ func (p *Player) MarkMail(mailIds string) { } } p.MarkDirty() - // p.SaveToDB() } func (p *Player) DeleteMails(mailIds string) { @@ -186,7 +185,7 @@ func (p *Player) Serialize(accountPB *ss.MFAccountData) { } func (p *Player) UpdateExpire() { - p.CacheExpiration = time.Now().Add(10 * time.Second) + p.CacheExpiration = time.Now().Add(20 * time.Second) } func (p *Player) IsCacheExpired() bool { @@ -216,6 +215,8 @@ func (p *Player) SaveToDB() { if err != nil { f5.GetSysLog().Info("SaveToDB Error:%v\n", err) } else { + // 标记p 为已过期 + p.CacheExpiration = time.Now().Add(-10 * time.Second) f5.GetSysLog().Info("SaveToDB OK\n") } }, diff --git a/server/mailserver/player/playermgr.go b/server/mailserver/player/playermgr.go index a91327d1..9d9d133a 100644 --- a/server/mailserver/player/playermgr.go +++ b/server/mailserver/player/playermgr.go @@ -1,6 +1,7 @@ package player import ( + "f5" "sync" ) @@ -29,6 +30,7 @@ func (pm *PlayerMgr) GetPlayer(accountId string) *Player { func (pm *PlayerMgr) AsyncGetPlayer(accountId string) *Player { p := pm.GetPlayer(accountId) if p != nil && !p.IsCacheExpired() { + f5.GetSysLog().Info("GetPlayer(%s) from cache", accountId) return p } @@ -39,7 +41,7 @@ func (pm *PlayerMgr) AsyncGetPlayer(accountId string) *Player { go func(accountId string) { pm.LoadPlayer(accountId, func(err error, p *Player) { defer wg.Done() - if err != nil && p != nil { + if err == nil && p != nil { player = p pm.accountIdHash[p.GetAccountId()] = p }