class deal_cache_user_info(threading.Thread): def __init__(self): threading.Thread.__init__(self) self.dbi = MySQL_Interface() self.bf = BloomFilter() def run(self): while True: if self.dbi.is_empty('cache_user_info'): time.sleep(2) self.dbi = MySQL_Interface() continue [res, cache_user_info_col] = self.dbi.select_all('cache_user_info') time_stick = time.strftime( '%Y-%m-%d %H:%M:%S', time.localtime(time.time())) # insert into user info table user_info_table_col = self.dbi.get_col_name('user_info_table') data = [[ line[cache_user_info_col.index(col)] if col in cache_user_info_col else time_stick if col == 'insert_time' else None if col == 'update_time' else None if col == 'latest_blog' else None if col == 'isGettingBlog' else '' for col in user_info_table_col ] for line in res] uid_list = [ line[user_info_table_col.index('uid')] for line in data ] self.dbi.insert_asList('user_info_table', data, unique=True) # 插入 user info table self.bf.insert_asList(uid_list, 'user_info_table') print('insert {num} users into user info table'.format( num=data.__len__())) uid_list = [line[cache_user_info_col.index('uid')] for line in res] q1 = "delete from {table_name} where uid in ( {id_str_list} ) ;" # 从cache user info 中删除 id_str_list = '' for i in uid_list: id_str_list = id_str_list + '\'' + str(i) + '\'' + ',' id_str_list = id_str_list[:-1] query = q1.format(id_str_list=id_str_list, table_name='cache_user_info') self.dbi.cur.execute(query) self.dbi.conn.commit() query = q1.format(id_str_list=id_str_list, table_name='ready_to_get') self.dbi.cur.execute(query) self.dbi.conn.commit()
class deal_cache_user_info(threading.Thread): def __init__(self): threading.Thread.__init__(self) self.dbi=MySQL_Interface() self.bf=BloomFilter() def run(self): while True: if self.dbi.is_empty('cache_user_info'): time.sleep(2) self.dbi=MySQL_Interface() continue [res,cache_user_info_col]=self.dbi.select_all('cache_user_info') time_stick=time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time())) # insert into user info table user_info_table_col=self.dbi.get_col_name('user_info_table') data= [ [ line[cache_user_info_col.index(col)] if col in cache_user_info_col else time_stick if col=='insert_time' else None if col=='update_time' else None if col=='latest_blog' else None if col=='isGettingBlog' else '' for col in user_info_table_col ] for line in res] uid_list=[line[user_info_table_col.index('uid')] for line in data] self.dbi.insert_asList('user_info_table',data,unique=True) # 插入 user info table self.bf.insert_asList(uid_list,'user_info_table') print('insert {num} users into user info table'.format(num=data.__len__())) uid_list=[line[cache_user_info_col.index('uid')] for line in res] q1="delete from {table_name} where uid in ( {id_str_list} ) ;" # 从cache user info 中删除 id_str_list='' for i in uid_list: id_str_list=id_str_list+'\''+str(i)+'\''+',' id_str_list=id_str_list[:-1] query=q1.format(id_str_list=id_str_list,table_name='cache_user_info') self.dbi.cur.execute(query) self.dbi.conn.commit() query=q1.format(id_str_list=id_str_list,table_name='ready_to_get') self.dbi.cur.execute(query) self.dbi.conn.commit()