Skip to content

实现一个每天更新玩家数据的方法

ilvxna edited this page Aug 7, 2018 · 1 revision

思路: 1.在数据库中存放一个上一次登录时间。 2.通过比较上一次登录时间和这一次登录时间相差天数是不是大于1,如果大于1则执行每天更新数据的方法。如果小于1则不执行。

注:思路比较简单,还有更好的方法,欢迎在帖子中留言讨论。

源码:

def onEntitiesEnabled(self):
        """
        KBEngine method.
        该entity被正式激活为可使用, 此时entity已经建立了client对应实体, 可以在此创建它的
        cell部分。
        """
        localtime = time.localtime(time.time())
        if self.lasttime != 0:
            """
            处理时间数据
            """
            lasttime = self.lasttime
            """
            注://表示整除
            """
            lastYear = lasttime // 10000
            lastMonth = lasttime %10000 // 100
            lastDay = lasttime % 100 
            lastDate = datetime.datetime(lastYear ,lastMonth,lastDay)
            nowYear = int(localtime[0])
            nowMonth = int(localtime[1])
            nowDay = int(localtime[2])
            nowDate = datetime.datetime(nowYear,nowMonth,nowDay)
            """
            上一次登录和现在差距多少天
            """
            dDays = (nowDate - lastDate).days
        
            """
            判断是否在同一天
            """
            if dDays >= 1:
                self.refreshValueByDay()
            """
            判断是否在同一周
            """
            if dDays >=7:
                self.refreshValuseByWeek()

        """
        更新登录时间
        """       
        self.lasttime = int(localtime[0])*10000+int(localtime[1])*100+int(localtime[2])
Clone this wiki locally