Ejemplo n.º 1
0
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()