diff --git a/lua/app/module/mail/mail_manager.lua b/lua/app/module/mail/mail_manager.lua index 3e224a40..b36a7f6a 100644 --- a/lua/app/module/mail/mail_manager.lua +++ b/lua/app/module/mail/mail_manager.lua @@ -10,10 +10,20 @@ function MailManager:getMailList(force) return end + if self.needUpdateMailSid then + self:unscheduleGlobal(self.needUpdateMailSid) + self.needUpdateMailSid = nil + end + self:sendMessage(ProtoMsgType.FromMsgEnum.MailListReq, {}, {}, self.getMailListFinish) end function MailManager:getMailListFinish(result) + if self.needUpdateMailSid then + self:unscheduleGlobal(self.needUpdateMailSid) + self.needUpdateMailSid = nil + end + if result.status == 0 then DataManager.MailData:init(result) end @@ -128,8 +138,18 @@ function MailManager:readMailFinish(result) end function MailManager:needUpdateMail() - -- 收到推送后不一定是有新邮件,要去拉一下 - self:getMailList(true) + if DataManager.MailData:getNeedGetNewMail() then + return + end + + -- 收到推送后不一定是有新邮件,要去拉一下, 延迟是为了减轻服务器压力 + if self.needUpdateMailSid then + self:unscheduleGlobal(self.needUpdateMailSid) + self.needUpdateMailSid = nil + end + self.needUpdateMailSid = self:performWithDelayGlobal(function() + self:getMailList(true) + end, math.random(1, 5)) end return MailManager \ No newline at end of file