Beispiel #1
0
    def _process_msg(self, msg):
        msgtype = msg.get_msgtype()
        if msgtype == MsgType.MsgTopMediasCalc:
            calc_msg = MsgTopMediasCalc()
            calc_msg.cast(msg)
            calc_msg.parse()
            ts = calc_msg.get_timestamp()
            user = calc_msg.get_userid()

            ff = open("fff", "a")
            try:
                cts = call_convert(float(ts)/1000)
            except:
                return
            aa = "media(%s), ts(%s)\n"%(user, cts)
            ff.write(aa)
            ff.close()
            
            vender = calc_msg.get_vender()
            if vender in vender_dict:
                vender = vender_dict[vender]
            if ts.find('.') != -1 or ts.isdigit() is False:
                warn("invalid timestamp %s for user %s"%(ts, user))
                return
            self.stat_user.mark(user, ts, vender)
            #print "after mark ", self.stat_user.show_user_info()
            
            if self.report_counter > self.report_threshold:
                self.report_counter = 0
                self._send_report()
            self.current += 1
            self.report_counter += 1
        else:
            super(TopMediasCalc, self)._process_msg(msg)
Beispiel #2
0
 def _process_msg(self, msg):
     msgtype = msg.get_msgtype()
     if msgtype == MsgType.MsgPlayRetentionCalc:
         calc_msg = MsgPlayRetentionCalc()
         calc_msg.cast(msg)
         calc_msg.parse()
         ts = calc_msg.get_timestamp()
         user = calc_msg.get_userid()
         vender = calc_msg.get_vender()
         retention = calc_msg.get_retention()
         if int(retention) > 14400:
             print "------invalid retention", retention
             return
         #print "PlayTimeCalc::_process_msg() user: %s, vender: %s"%(user, vender)
         if vender in vender_dict:
             vender = vender_dict[vender]
         if ts.find('.') != -1 or ts.isdigit() is False:
             warn("invalid timestamp %s for user %s"%(ts, user))
             return
         #print '-calc------', ts, user, vender, retention
         self.stat_user.mark(user, ts, vender, int(retention))
         #print "marked user: %s, ts: %s, vender: %s"%(user, ts, vender)
         #print "current user: %s, current count: %s"%(self.stat_user.count_user(),self.current)
         
         if self.stat_user.count_user() > self.report_threshold:
             self._send_report()
         self.current += 1
     else:
         super(PlayTimeCalc, self)._process_msg(msg)
Beispiel #3
0
    def _process_msg(self, msg):
        msgtype = msg.get_msgtype()
        if msgtype == MsgType.MsgPlayRetentionCalc:
            calc_msg = MsgPlayRetentionCalc()
            calc_msg.cast(msg)
            calc_msg.parse()
            ts = calc_msg.get_timestamp()
            user = calc_msg.get_userid()
            vender = calc_msg.get_vender()
            retention = calc_msg.get_retention()
            if int(retention) > 14400:
                print "------invalid retention", retention
                return
            #print "PlayTimeCalc::_process_msg() user: %s, vender: %s"%(user, vender)
            if vender in vender_dict:
                vender = vender_dict[vender]
            if ts.find('.') != -1 or ts.isdigit() is False:
                warn("invalid timestamp %s for user %s" % (ts, user))
                return
            #print '-calc------', ts, user, vender, retention
            self.stat_user.mark(user, ts, vender, int(retention))
            #print "marked user: %s, ts: %s, vender: %s"%(user, ts, vender)
            #print "current user: %s, current count: %s"%(self.stat_user.count_user(),self.current)

            if self.stat_user.count_user() > self.report_threshold:
                self._send_report()
            self.current += 1
        else:
            super(PlayTimeCalc, self)._process_msg(msg)
Beispiel #4
0
 def _notice_calc_finish(self):
     echo("GrabberManager::notice to calculation processes "
          "the work has been finished")
     gq_msg = MsgGrabberQuit()
     qid = self.msgh.findQueue("CalcManager")
     queue = self.msgh.getQueue(qid)
     if queue is None:
         warn("GrabberManager::_notice_calc_finish() cann not find queue"
              "with name calcManager")
         return
     self.queue.send(queue, gq_msg)
 def _notice_calc_finish(self):
     echo("GrabberManager::notice to calculation processes "
          "the work has been finished")
     gq_msg = MsgGrabberQuit()
     qid = self.msgh.findQueue("CalcManager")
     queue = self.msgh.getQueue(qid)
     if queue is None:
         warn("GrabberManager::_notice_calc_finish() cann not find queue"
              "with name calcManager")
         return 
     self.queue.send(queue, gq_msg)
Beispiel #6
0
    def _process_msg(self, msg):
        msgtype = msg.get_msgtype()
        if msgtype == MsgType.MsgPlayUserCalc:
            calc_msg = MsgPlayUserCalc()
            calc_msg.cast(msg)
            calc_msg.parse()
            ts = calc_msg.get_timestamp()
            user = calc_msg.get_userid()
            vender = calc_msg.get_vender()
            if vender in vender_dict:
                vender = vender_dict[vender]
            if ts.find('.') != -1 or ts.isdigit() is False:
                warn("invalid timestamp %s for user %s" % (ts, user))
                return
            self.stat_user.mark(user, ts, vender)

            if self.stat_user.count_user() > self.report_threshold:
                self._send_report()
            self.current += 1
        else:
            super(PlayUserCalc, self)._process_msg(msg)
Beispiel #7
0
 def _process_msg(self, msg):
     msgtype = msg.get_msgtype()
     if msgtype == MsgType.MsgPlayUserCalc:
         calc_msg = MsgPlayUserCalc()
         calc_msg.cast(msg)
         calc_msg.parse()
         ts = calc_msg.get_timestamp()
         user = calc_msg.get_userid()
         vender = calc_msg.get_vender()
         if vender in vender_dict:
             vender = vender_dict[vender]
         if ts.find('.') != -1 or ts.isdigit() is False:
             warn("invalid timestamp %s for user %s"%(ts, user))
             return
         self.stat_user.mark(user, ts, vender)
         
         if self.stat_user.count_user() > self.report_threshold:
             self._send_report()
         self.current += 1
     else:
         super(PlayUserCalc, self)._process_msg(msg)
Beispiel #8
0
    def _duration_rate_day(self):
        self.dbsession = self.db.open('play_duration_rate_day')
        data = {"vender": '', 'date': '', 'time': 0}

        venders_time = self.stat_user.gen_stat_count_by_vender_per_day()
        venders_user = self.stat_user.gen_stat_users_by_vender_per_day()

        for vender, stat_time in venders_time.items():
            print "--------", vender, stat_time.show_info()

        for vender, stat_time in venders_user.items():
            print "_duration_rate_day(): ", vender, stat_time.show_info()
            if vender not in venders_time:
                warn(
                    '_duration_rate_day():user vender %s is not in time venders[%s]'
                    % (vender, str(venders_time)))
                continue
            time_infos = venders_time[vender].show_info()
            user_infos = stat_time.show_info()
            total, rate = 0, 0
            data['vender'] = vender
            for day, count in user_infos.items():
                if day not in time_infos:
                    warn(
                        "_duration_rate_day():user day %s is not in time days[%s]"
                        % (day, str(time_infos.keys())))
                    continue
                rate = int(time_infos[day]) / int(count)
                data['date'] = day
                data['time'] = rate
                self.dbsession.insert(data)
            self.dbsession.commit()

        total, rate = 0, 0
        time_infos = self.stat_user.gen_stat_times().show_info()
        user_infos = self.stat_user.gen_stat_users().show_info()
        data['vender'] = 'HISENSE'
        for day, count in user_infos.items():
            if day not in time_infos:
                warn('user ay %s is not in time days[%s]' %
                     (day, str(time_infos.keys())))
                continue
            rate = int(time_infos[day]) / int(count)
            data['date'] = day
            data['time'] = rate
            self.dbsession.insert(data)
        self.dbsession.commit()
        self.dbsession.close()
Beispiel #9
0
    def _duration_rate_day(self):
        self.dbsession = self.db.open('play_duration_rate_day')
        data = {"vender": '',
                'date': '',
                'time': 0}
        
        venders_time = self.stat_user.gen_stat_count_by_vender_per_day()
        venders_user = self.stat_user.gen_stat_users_by_vender_per_day()

        for vender, stat_time in venders_time.items():
            print "--------", vender, stat_time.show_info()

        for vender, stat_time in venders_user.items():
            print "_duration_rate_day(): ", vender, stat_time.show_info()
            if vender not in venders_time:
                warn('_duration_rate_day():user vender %s is not in time venders[%s]'%(vender, str(venders_time)))
                continue
            time_infos = venders_time[vender].show_info()
            user_infos = stat_time.show_info()
            total, rate = 0, 0
            data['vender'] = vender
            for day, count in user_infos.items():
                if day not in time_infos:
                    warn("_duration_rate_day():user day %s is not in time days[%s]"%(day, str(time_infos.keys())))
                    continue
                rate = int(time_infos[day]) / int(count)
                data['date'] = day
                data['time'] = rate
                self.dbsession.insert(data)
            self.dbsession.commit()

        total, rate = 0, 0
        time_infos = self.stat_user.gen_stat_times().show_info()
        user_infos = self.stat_user.gen_stat_users().show_info()
        data['vender'] = 'HISENSE'
        for day, count in user_infos.items():
            if day not in time_infos:
                warn('user ay %s is not in time days[%s]'%(day, str(time_infos.keys())))
                continue
            rate = int(time_infos[day]) / int(count)
            data['date'] = day
            data['time'] = rate
            self.dbsession.insert(data)
        self.dbsession.commit()
        self.dbsession.close()