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)
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)
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)
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 _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)
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)
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()
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()