class JHSBrandUpdate(): '''A class of brand update''' def __init__(self, m_type): # 队列标志 self._obj = 'item' self._crawl_type = 'update' # DB self.mysqlAccess = MysqlAccess() # mysql access # item queue self.item_queue = JHSQ(self._obj, self._crawl_type) # 抓取开始时间 self.begin_time = Common.now() # 即将开团的最小时间 self.min_hourslot = 1 # 最小时间段 # 分布式主机标志 self.m_type = m_type def antPage(self): try: # 更新即将开团活动的商品信息 # 主机器需要配置redis队列 if self.m_type == 'm': # 一个小时即将开团 val = (Common.time_s(self.begin_time),Common.add_hours(self.begin_time, self.min_hourslot)) print '# update time:',val # 商品默认信息列表 all_item_num = 0 update_val_list = [] act_items = {} item_results = self.mysqlAccess.selectJhsItemsForUpdate(val) if item_results: for item in item_results: if act_items.has_key(str(item[0])): act_items[str(item[0])]["items"].append(item[2:]) else: act_items[str(item[0])] = {'act_name':item[1],'items':[]} act_items[str(item[0])]["items"].append(item[2:]) all_item_num += 1 for key in act_items.keys(): update_val_list.append((key,act_items[key]["act_name"],act_items[key]["items"])) else: print '# not find need update items...' print '# need update all items nums:',all_item_num print '# need update all acts nums:',len(update_val_list) # 清空redis队列 self.item_queue.clearQ() # 保存到redis队列 self.item_queue.putlistQ(update_val_list) print '# item queue end:',time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time())) """ # 附加的信息 a_val = (self.begin_time,) self.work.process(self._obj, self._crawl_type, a_val) """ except Exception as e: print '# exception err in antPage info:',e Common.traceback_log()