Esempio n. 1
0
    def handleUid(self, uid):

        uid_stat_t = self.mongoconn["video"]["%s_stat" % (uid)]
        uid_daily_t = self.mongoconn["video"]["%s_daily" % (uid)]

        #初始化uidinfo类
        uidinfObj = UidInfo(self.mysql_conn, self.mongoconn, uid)
        """得到该用户本天统计数据"""
        uiddailystat = uid_daily_t.find_one({"_id": self.date})

        Nvideo = uiddailystat["Nvideo"]
        Load = uiddailystat["Load"]
        Play = uiddailystat["Play"]
        IP = uiddailystat["IP"]
        Engage = uiddailystat["Engage"]
        Click = uiddailystat["Click"]
        Traffic = uiddailystat["Traffic"]
        Geo = uiddailystat["Geo"]
        """计算地域分布数据中完成率"""
        for region in Geo:
            Geo[region]["Engage"] = operator.itruediv(
                float(Geo[region]["EngageSum"]), int(Geo[region]["ClickNum"]))
        """得到该用户截至目前统计信息"""
        uidnowstat = uidinfObj.get_uid_info(uid)
        #uidnowstat = uid_stat_t.find_one({"_id":uid},{"_id":0,"EngageSum":0})

        nowGeo = uidnowstat["Geo"]
        nowTraffic = float(uidnowstat["Traffic"])
        nowMtraffic = float(uidnowstat["Mtraffic"])
        """时间序列已存储多少天数据"""
        #days = redata.llen("%s_date"%(uid)) + 1
        """写数据到redis"""
        redpipe = self.redata.pipeline()
        redpipe.rpush("%s_date" % (uid), self.date)
        redpipe.rpush("%s_UD1" % (uid), Nvideo)
        redpipe.rpush("%s_UD2" % (uid), Load)
        redpipe.rpush("%s_UD3" % (uid), Play)
        redpipe.rpush("%s_UD4" % (uid), IP)
        redpipe.rpush("%s_UD5" % (uid), Engage)
        redpipe.rpush("%s_UD6" % (uid), Click)
        redpipe.rpush("%s_UD7" % (uid), Traffic)
        redpipe.rpush("%s_UDD" % (uid), ujson.encode(Geo))

        redpipe.set("%s_UH" % (uid), ujson.encode(uidnowstat))
        redpipe.set("%s_UDH" % (uid), ujson.encode(nowGeo))
        """
        if days > self.daynums:
            redpipe.lpop("%s_date"%(uid))
            redpipe.lpop("%s_UD1"%(uid))
            redpipe.lpop("%s_UD2"%(uid))
            redpipe.lpop("%s_UD3"%(uid))
            redpipe.lpop("%s_UD4"%(uid))
            redpipe.lpop("%s_UD5"%(uid))
            redpipe.lpop("%s_UD6"%(uid))
            redpipe.lpop("%s_UD7"%(uid))
            redpipe.lpop("%s_UDD"%(uid))
        """

        redpipe.execute()

        uidinfObj.update_usum(uid, uidnowstat)
        uidinfObj.update_ugeo(uid, uidnowstat)
Esempio n. 2
0
    def handleUid(self, uid):

        uid_stat_t = self.mongoconn[self.mongodbName]["%s_stat" % (uid)]
        uid_daily_t = self.mongoconn[self.mongodbName]["%s_daily" % (uid)]

        #初始化uidinfo类
        uidinfObj = UidInfo(self.mysql_conn, self.mongoconn, uid)
        """得到该用户本天统计数据"""
        uiddailystat = uid_daily_t.find_one({"_id": self.date})

        Nvideo = uiddailystat["Nvideo"]
        Load = uiddailystat["Load"]
        Play = uiddailystat["Play"]
        IP = uiddailystat["IP"]
        Engage = uiddailystat["Engage"]
        Click = uiddailystat["Click"]
        Traffic = uiddailystat["Traffic"]
        Geo = uiddailystat["Geo"]
        """计算地域分布数据中完成率"""
        for region in Geo:
            Geo[region]["Engage"] = operator.itruediv(
                float(Geo[region]["EngageSum"]), int(Geo[region]["ClickNum"]))
        """得到该用户截至目前统计信息"""
        uidnowstat = uidinfObj.get_uid_info(uid)

        nowGeo = uidnowstat["Geo"]
        nowTraffic = float(uidnowstat["Traffic"])
        nowMtraffic = float(uidnowstat["Mtraffic"])
        """时间序列已存储多少天数据"""
        #days = redata.llen("%s_date"%(uid)) + 1
        """写数据到redis"""
        redpipe = self.redata.pipeline()
        redpipe.rpush("%s_date" % (uid), self.date)
        redpipe.rpush("%s_UD1" % (uid), Nvideo)
        redpipe.rpush("%s_UD2" % (uid), Load)
        redpipe.rpush("%s_UD3" % (uid), Play)
        redpipe.rpush("%s_UD4" % (uid), IP)
        redpipe.rpush("%s_UD5" % (uid), Engage)
        redpipe.rpush("%s_UD6" % (uid), Click)
        redpipe.rpush("%s_UD7" % (uid), Traffic)
        redpipe.rpush("%s_UDD" % (uid), ujson.encode(Geo))

        redpipe.set("%s_UH" % (uid), ujson.encode(uidnowstat))
        redpipe.set("%s_UDH" % (uid), ujson.encode(nowGeo))

        #为便于php进行套餐流量统计,将uid用户当天流量和写入redis
        datadict = {"date": self.date, "traffic": Traffic}
        redpipe.set("%s_traffic" % (uid), ujson.encode(datadict))
        """
        if days > self.daynums:
            redpipe.lpop("%s_date"%(uid))
            redpipe.lpop("%s_UD1"%(uid))
            redpipe.lpop("%s_UD2"%(uid))
            redpipe.lpop("%s_UD3"%(uid))
            redpipe.lpop("%s_UD4"%(uid))
            redpipe.lpop("%s_UD5"%(uid))
            redpipe.lpop("%s_UD6"%(uid))
            redpipe.lpop("%s_UD7"%(uid))
            redpipe.lpop("%s_UDD"%(uid))
        """

        redpipe.execute()

        uidinfObj.update_usum(uid, uidnowstat)
        uidinfObj.update_ugeo(uid, uidnowstat)

        # --/
        #     FUNCTION MODULE : COLLECT USER BASE INFORMATION
        #     USER BASE INFORMATION WRITE TO FILE OF EXECEL,TXT,PDF
        #     ADD IN 20131210
        # --/
        uidinfObj.write_zzuinfo_to_file()
Esempio n. 3
0
    def handleUid(self,uid):
        
        uid_stat_t =  self.mongoconn["video"]["%s_stat"%(uid)]
        uid_daily_t = self.mongoconn["video"]["%s_daily"%(uid)]
        
        #初始化uidinfo类
        uidinfObj = UidInfo(self.mysql_conn,self.mongoconn,uid)
        
        """得到该用户本天统计数据"""
        uiddailystat = uid_daily_t.find_one({"_id":self.date})
        
        Nvideo = uiddailystat["Nvideo"]
        Load = uiddailystat["Load"]
        Play = uiddailystat["Play"]
        IP = uiddailystat["IP"]
        Engage = uiddailystat["Engage"]
        Click = uiddailystat["Click"]
        Traffic = uiddailystat["Traffic"]
        Geo = uiddailystat["Geo"]
        
        """计算地域分布数据中完成率"""
        for region in Geo:
            Geo[region]["Engage"] = operator.itruediv(float(Geo[region]["EngageSum"]), int(Geo[region]["ClickNum"]))
        
        """得到该用户截至目前统计信息"""
        uidnowstat = uidinfObj.get_uid_info(uid)
        #uidnowstat = uid_stat_t.find_one({"_id":uid},{"_id":0,"EngageSum":0})
        
        nowGeo = uidnowstat["Geo"]
        nowTraffic = float(uidnowstat["Traffic"])
        nowMtraffic = float(uidnowstat["Mtraffic"])
        
        """时间序列已存储多少天数据"""
        #days = redata.llen("%s_date"%(uid)) + 1
        
        """写数据到redis"""
        redpipe = self.redata.pipeline()
        redpipe.rpush("%s_date"%(uid), self.date)
        redpipe.rpush("%s_UD1"%(uid),Nvideo)
        redpipe.rpush("%s_UD2"%(uid),Load)
        redpipe.rpush("%s_UD3"%(uid),Play)
        redpipe.rpush("%s_UD4"%(uid),IP)
        redpipe.rpush("%s_UD5"%(uid),Engage)
        redpipe.rpush("%s_UD6"%(uid),Click)
        redpipe.rpush("%s_UD7"%(uid),Traffic)
        redpipe.rpush("%s_UDD"%(uid),ujson.encode(Geo))
        
        redpipe.set("%s_UH"%(uid),ujson.encode(uidnowstat))
        redpipe.set("%s_UDH"%(uid),ujson.encode(nowGeo))        
        
        """
        if days > self.daynums:
            redpipe.lpop("%s_date"%(uid))
            redpipe.lpop("%s_UD1"%(uid))
            redpipe.lpop("%s_UD2"%(uid))
            redpipe.lpop("%s_UD3"%(uid))
            redpipe.lpop("%s_UD4"%(uid))
            redpipe.lpop("%s_UD5"%(uid))
            redpipe.lpop("%s_UD6"%(uid))
            redpipe.lpop("%s_UD7"%(uid))
            redpipe.lpop("%s_UDD"%(uid))
        """   

        redpipe.execute()
            
        uidinfObj.update_usum(uid,uidnowstat)
        uidinfObj.update_ugeo(uid,uidnowstat)
Esempio n. 4
0
    def handleUid(self,uid):
        
        uid_stat_t =  self.mongoconn[self.mongodbName]["%s_stat"%(uid)]
        uid_daily_t = self.mongoconn[self.mongodbName]["%s_daily"%(uid)]
        
        #初始化uidinfo类
        uidinfObj = UidInfo(self.mysql_conn,self.mongoconn,uid)
        
        """得到该用户本天统计数据"""
        uiddailystat = uid_daily_t.find_one({"_id":self.date})
        
        Nvideo = uiddailystat["Nvideo"]
        Load = uiddailystat["Load"]
        Play = uiddailystat["Play"]
        IP = uiddailystat["IP"]
        Engage = uiddailystat["Engage"]
        Click = uiddailystat["Click"]
        Traffic = uiddailystat["Traffic"]
        Geo = uiddailystat["Geo"]
        
        """计算地域分布数据中完成率"""
        for region in Geo:
            Geo[region]["Engage"] = operator.itruediv(float(Geo[region]["EngageSum"]), int(Geo[region]["ClickNum"]))
        
        """得到该用户截至目前统计信息"""
        uidnowstat = uidinfObj.get_uid_info(uid)
        
        nowGeo = uidnowstat["Geo"]
        nowTraffic = float(uidnowstat["Traffic"])
        nowMtraffic = float(uidnowstat["Mtraffic"])
        
        """时间序列已存储多少天数据"""
        #days = redata.llen("%s_date"%(uid)) + 1
        
        """写数据到redis"""
        redpipe = self.redata.pipeline()
        redpipe.rpush("%s_date"%(uid), self.date)
        redpipe.rpush("%s_UD1"%(uid),Nvideo)
        redpipe.rpush("%s_UD2"%(uid),Load)
        redpipe.rpush("%s_UD3"%(uid),Play)
        redpipe.rpush("%s_UD4"%(uid),IP)
        redpipe.rpush("%s_UD5"%(uid),Engage)
        redpipe.rpush("%s_UD6"%(uid),Click)
        redpipe.rpush("%s_UD7"%(uid),Traffic)
        redpipe.rpush("%s_UDD"%(uid),ujson.encode(Geo))
        
        redpipe.set("%s_UH"%(uid),ujson.encode(uidnowstat))
        redpipe.set("%s_UDH"%(uid),ujson.encode(nowGeo))   

        #为便于php进行套餐流量统计,将uid用户当天流量和写入redis
        datadict = {"date":self.date,"traffic":Traffic}
        redpipe.set("%s_traffic"%(uid),ujson.encode(datadict))          
 
        """
        if days > self.daynums:
            redpipe.lpop("%s_date"%(uid))
            redpipe.lpop("%s_UD1"%(uid))
            redpipe.lpop("%s_UD2"%(uid))
            redpipe.lpop("%s_UD3"%(uid))
            redpipe.lpop("%s_UD4"%(uid))
            redpipe.lpop("%s_UD5"%(uid))
            redpipe.lpop("%s_UD6"%(uid))
            redpipe.lpop("%s_UD7"%(uid))
            redpipe.lpop("%s_UDD"%(uid))
        """   

        redpipe.execute()
            
        uidinfObj.update_usum(uid,uidnowstat)
        uidinfObj.update_ugeo(uid,uidnowstat)
       
        # --/
        #     FUNCTION MODULE : COLLECT USER BASE INFORMATION
        #     USER BASE INFORMATION WRITE TO FILE OF EXECEL,TXT,PDF
        #     ADD IN 20131210
        # --/
        uidinfObj.write_zzuinfo_to_file()