|  | @@ -1222,43 +1222,39 @@ class PoolRecall(object):
 | 
											
												
													
														|  |          if region_code == '':
 |  |          if region_code == '':
 | 
											
												
													
														|  |              region_code = '-1'
 |  |              region_code = '-1'
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | -        # if self.ab_code in [config_.AB_CODE['region_rank_by_h'].get('region_rule_rank5_appType_0_data1'),
 |  | 
 | 
											
												
													
														|  | -        #                     config_.AB_CODE['region_rank_by_h'].get('abtest_082'),
 |  | 
 | 
											
												
													
														|  | -        #                     config_.AB_CODE['region_rank_by_h'].get('abtest_112')]:
 |  | 
 | 
											
												
													
														|  | -
 |  | 
 | 
											
												
													
														|  | -        if region_code == '-1':
 |  | 
 | 
											
												
													
														|  | -            t = [
 |  | 
 | 
											
												
													
														|  | -                # gevent.spawn(self.rov_pool_recall_with_region_by_h, province_code, size, 'day_24h'),
 |  | 
 | 
											
												
													
														|  | -                gevent.spawn(self.recall_region_dup_24h, region_code, size, '24h_dup2', expire_time),
 |  | 
 | 
											
												
													
														|  | -                gevent.spawn(self.recall_region_dup_24h, region_code, size, '24h_dup3', expire_time)
 |  | 
 | 
											
												
													
														|  | -            ]
 |  | 
 | 
											
												
													
														|  | 
 |  | +        if self.ab_code == config_.AB_CODE['region_rank_by_h'].get('abtest_139'):
 | 
											
												
													
														|  | 
 |  | +            if region_code == '-1':
 | 
											
												
													
														|  | 
 |  | +                t = [
 | 
											
												
													
														|  | 
 |  | +                    gevent.spawn(self.recall_update_by_day, size, '30day'),
 | 
											
												
													
														|  | 
 |  | +                    gevent.spawn(self.recall_region_dup_24h, region_code, size, '24h_dup2', expire_time),
 | 
											
												
													
														|  | 
 |  | +                    gevent.spawn(self.recall_region_dup_24h, region_code, size, '24h_dup3', expire_time)
 | 
											
												
													
														|  | 
 |  | +                ]
 | 
											
												
													
														|  | 
 |  | +            else:
 | 
											
												
													
														|  | 
 |  | +                t = [
 | 
											
												
													
														|  | 
 |  | +                    gevent.spawn(self.recall_update_by_day, size, '30day'),
 | 
											
												
													
														|  | 
 |  | +                    gevent.spawn(self.recall_region_dup_24h, region_code, size, 'region_h', expire_time),
 | 
											
												
													
														|  | 
 |  | +                    gevent.spawn(self.recall_region_dup_24h, region_code, size, 'region_24h', expire_time),
 | 
											
												
													
														|  | 
 |  | +                    gevent.spawn(self.recall_region_dup_24h, region_code, size, '24h_dup2', expire_time),
 | 
											
												
													
														|  | 
 |  | +                    gevent.spawn(self.recall_region_dup_24h, region_code, size, '24h_dup3', expire_time)
 | 
											
												
													
														|  | 
 |  | +                ]
 | 
											
												
													
														|  |          else:
 |  |          else:
 | 
											
												
													
														|  | -            t = [
 |  | 
 | 
											
												
													
														|  | -                # gevent.spawn(self.rov_pool_recall_with_region_by_h, province_code, size),
 |  | 
 | 
											
												
													
														|  | -                 # gevent.spawn(self.rov_pool_recall_with_region_by_h, province_code, size, 'region_24h'),
 |  | 
 | 
											
												
													
														|  | -                 # gevent.spawn(self.rov_pool_recall_with_region_by_h, province_code, size, 'day_24h'),
 |  | 
 | 
											
												
													
														|  | -                 gevent.spawn(self.recall_region_dup_24h, region_code, size, 'region_h', expire_time),
 |  | 
 | 
											
												
													
														|  | -                 gevent.spawn(self.recall_region_dup_24h, region_code, size, 'region_24h', expire_time),
 |  | 
 | 
											
												
													
														|  | -                 gevent.spawn(self.recall_region_dup_24h, region_code, size, '24h_dup2', expire_time),
 |  | 
 | 
											
												
													
														|  | -                 gevent.spawn(self.recall_region_dup_24h, region_code, size, '24h_dup3', expire_time)
 |  | 
 | 
											
												
													
														|  | -            ]
 |  | 
 | 
											
												
													
														|  | -        # else:
 |  | 
 | 
											
												
													
														|  | -        #     if province_code == '-1':
 |  | 
 | 
											
												
													
														|  | -        #         # t = [gevent.spawn(self.rov_pool_recall_with_region_by_h, province_code, size, 'day_24h')]
 |  | 
 | 
											
												
													
														|  | -        #         t = [gevent.spawn(self.recall_region_dup_24h, province_code, size, '24h_dup2', expire_time)]
 |  | 
 | 
											
												
													
														|  | -        #
 |  | 
 | 
											
												
													
														|  | -        #     else:
 |  | 
 | 
											
												
													
														|  | -        #         t = [
 |  | 
 | 
											
												
													
														|  | -        #             # gevent.spawn(self.rov_pool_recall_with_region_by_h, province_code, size),
 |  | 
 | 
											
												
													
														|  | -        #              # gevent.spawn(self.rov_pool_recall_with_region_by_h, province_code, size, 'region_24h'),
 |  | 
 | 
											
												
													
														|  | -        #              # gevent.spawn(self.rov_pool_recall_with_region_by_h, province_code, size, 'day_24h'),
 |  | 
 | 
											
												
													
														|  | -        #              gevent.spawn(self.recall_region_dup_24h, province_code, size, 'region_h', expire_time),
 |  | 
 | 
											
												
													
														|  | -        #              gevent.spawn(self.recall_region_dup_24h, province_code, size, 'region_24h', expire_time),
 |  | 
 | 
											
												
													
														|  | -        #              gevent.spawn(self.recall_region_dup_24h, province_code, size, '24h_dup2', expire_time),
 |  | 
 | 
											
												
													
														|  | -        #
 |  | 
 | 
											
												
													
														|  | -        #              # gevent.spawn(self.region_dup_recall, province_code, 1, size, expire_time),
 |  | 
 | 
											
												
													
														|  | -        #              # gevent.spawn(self.region_dup_recall, province_code, 2, size, expire_time)
 |  | 
 | 
											
												
													
														|  | -        #              ]
 |  | 
 | 
											
												
													
														|  | 
 |  | +            if region_code == '-1':
 | 
											
												
													
														|  | 
 |  | +                t = [
 | 
											
												
													
														|  | 
 |  | +                    # gevent.spawn(self.rov_pool_recall_with_region_by_h, province_code, size, 'day_24h'),
 | 
											
												
													
														|  | 
 |  | +                    gevent.spawn(self.recall_region_dup_24h, region_code, size, '24h_dup2', expire_time),
 | 
											
												
													
														|  | 
 |  | +                    gevent.spawn(self.recall_region_dup_24h, region_code, size, '24h_dup3', expire_time)
 | 
											
												
													
														|  | 
 |  | +                ]
 | 
											
												
													
														|  | 
 |  | +            else:
 | 
											
												
													
														|  | 
 |  | +                t = [
 | 
											
												
													
														|  | 
 |  | +                    # gevent.spawn(self.rov_pool_recall_with_region_by_h, province_code, size),
 | 
											
												
													
														|  | 
 |  | +                     # gevent.spawn(self.rov_pool_recall_with_region_by_h, province_code, size, 'region_24h'),
 | 
											
												
													
														|  | 
 |  | +                     # gevent.spawn(self.rov_pool_recall_with_region_by_h, province_code, size, 'day_24h'),
 | 
											
												
													
														|  | 
 |  | +                     gevent.spawn(self.recall_region_dup_24h, region_code, size, 'region_h', expire_time),
 | 
											
												
													
														|  | 
 |  | +                     gevent.spawn(self.recall_region_dup_24h, region_code, size, 'region_24h', expire_time),
 | 
											
												
													
														|  | 
 |  | +                     gevent.spawn(self.recall_region_dup_24h, region_code, size, '24h_dup2', expire_time),
 | 
											
												
													
														|  | 
 |  | +                     gevent.spawn(self.recall_region_dup_24h, region_code, size, '24h_dup3', expire_time)
 | 
											
												
													
														|  | 
 |  | +                ]
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  |          gevent.joinall(t)
 |  |          gevent.joinall(t)
 | 
											
												
													
														|  |          region_recall_result_list = [i.get() for i in t]
 |  |          region_recall_result_list = [i.get() for i in t]
 | 
											
												
													
														|  |          # 将已获取到的视频按顺序去重合并
 |  |          # 将已获取到的视频按顺序去重合并
 | 
											
										
											
												
													
														|  | @@ -1298,6 +1294,7 @@ class PoolRecall(object):
 | 
											
												
													
														|  |          #     'operation': 'rov_pool_recall_with_region',
 |  |          #     'operation': 'rov_pool_recall_with_region',
 | 
											
												
													
														|  |          #     'executeTime': (time.time() - start_time) * 1000
 |  |          #     'executeTime': (time.time() - start_time) * 1000
 | 
											
												
													
														|  |          # })
 |  |          # })
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  |          return recall_result[:size]
 |  |          return recall_result[:size]
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |      def rov_pool_recall_with_region_by_h(self, province_code, size=4, key_flag=''):
 |  |      def rov_pool_recall_with_region_by_h(self, province_code, size=4, key_flag=''):
 | 
											
										
											
												
													
														|  | @@ -1647,7 +1644,6 @@ class PoolRecall(object):
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |          return recall_result[:size]
 |  |          return recall_result[:size]
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | -
 |  | 
 | 
											
												
													
														|  |      def update_last_video_record(self, record_key, pool_key_prefix, province_code):
 |  |      def update_last_video_record(self, record_key, pool_key_prefix, province_code):
 | 
											
												
													
														|  |          # 判断当前小时的小时级列表是否更新
 |  |          # 判断当前小时的小时级列表是否更新
 | 
											
												
													
														|  |          now_date = datetime.today()
 |  |          now_date = datetime.today()
 | 
											
										
											
												
													
														|  | @@ -1862,3 +1858,147 @@ class PoolRecall(object):
 | 
											
												
													
														|  |          #     'executeTime': (time.time() - start_time) * 1000
 |  |          #     'executeTime': (time.time() - start_time) * 1000
 | 
											
												
													
														|  |          # })
 |  |          # })
 | 
											
												
													
														|  |          return pool_recall_result[:size]
 |  |          return pool_recall_result[:size]
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    def update_last_video_record_by_day(self, record_key, pool_key_prefix, expire_time):
 | 
											
												
													
														|  | 
 |  | +        # 判断当前日期的小时级列表是否更新
 | 
											
												
													
														|  | 
 |  | +        now_date = datetime.today()
 | 
											
												
													
														|  | 
 |  | +        now_dt = datetime.strftime(now_date, '%Y%m%d')
 | 
											
												
													
														|  | 
 |  | +        now_pool_recall_key = f"{pool_key_prefix}:{self.data_key}:{self.rule_key}:{now_dt}"
 | 
											
												
													
														|  | 
 |  | +        if self.redis_helper.key_exists(key_name=now_pool_recall_key):
 | 
											
												
													
														|  | 
 |  | +            value = {'date': now_dt}
 | 
											
												
													
														|  | 
 |  | +            self.redis_helper.set_data_to_redis(key_name=record_key, value=str(value), expire_time=expire_time)
 | 
											
												
													
														|  | 
 |  | +        else:
 | 
											
												
													
														|  | 
 |  | +            redis_dt = datetime.strftime(now_date - timedelta(days=1), '%Y%m%d')
 | 
											
												
													
														|  | 
 |  | +            now_pool_recall_key = f"{pool_key_prefix}:{self.data_key}:{self.rule_key}:{redis_dt}"
 | 
											
												
													
														|  | 
 |  | +            value = {'date': redis_dt}
 | 
											
												
													
														|  | 
 |  | +            self.redis_helper.set_data_to_redis(key_name=record_key, value=str(value), expire_time=expire_time)
 | 
											
												
													
														|  | 
 |  | +        return now_pool_recall_key
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    def get_last_recommend_video_idx_by_day(self, record_key_prefix, pool_key_prefix, last_video_key_prefix, expire_time):
 | 
											
												
													
														|  | 
 |  | +        # 判断mid对应上一次视频位置 时间记录
 | 
											
												
													
														|  | 
 |  | +        record_key = f"{record_key_prefix}{self.app_type}:{self.mid}"
 | 
											
												
													
														|  | 
 |  | +        last_video_key = f'{last_video_key_prefix}{self.app_type}:{self.mid}'
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +        if not self.redis_helper.key_exists(key_name=record_key):
 | 
											
												
													
														|  | 
 |  | +            # ###### 记录key不存在
 | 
											
												
													
														|  | 
 |  | +            self.redis_helper.del_keys(key_name=last_video_key)
 | 
											
												
													
														|  | 
 |  | +            idx = 0
 | 
											
												
													
														|  | 
 |  | +            pool_recall_key = self.update_last_video_record_by_day(record_key=record_key,
 | 
											
												
													
														|  | 
 |  | +                                                                   pool_key_prefix=pool_key_prefix,
 | 
											
												
													
														|  | 
 |  | +                                                                   expire_time=expire_time)
 | 
											
												
													
														|  | 
 |  | +        else:
 | 
											
												
													
														|  | 
 |  | +            # ###### 记录key存在,判断date
 | 
											
												
													
														|  | 
 |  | +            now_date = datetime.today()
 | 
											
												
													
														|  | 
 |  | +            # 获取记录的date
 | 
											
												
													
														|  | 
 |  | +            record = self.redis_helper.get_data_from_redis(key_name=record_key)
 | 
											
												
													
														|  | 
 |  | +            record_dt = eval(record).get('date')
 | 
											
												
													
														|  | 
 |  | +            now_dt = datetime.strftime(now_date, '%Y%m%d')
 | 
											
												
													
														|  | 
 |  | +            if record_dt == now_dt:
 | 
											
												
													
														|  | 
 |  | +                # 已获取当前日期数据
 | 
											
												
													
														|  | 
 |  | +                pool_recall_key = f"{pool_key_prefix}:{self.data_key}:{self.rule_key}:{now_dt}"
 | 
											
												
													
														|  | 
 |  | +                idx = self.get_video_idx(pool_recall_key=pool_recall_key, last_video_key=last_video_key)
 | 
											
												
													
														|  | 
 |  | +            elif record_dt == datetime.strftime((now_date - timedelta(days=1)), '%Y%m%d'):
 | 
											
												
													
														|  | 
 |  | +                # 记录的dt - 当前dt = 1,判断当前h数据是否已更新
 | 
											
												
													
														|  | 
 |  | +                now_pool_recall_key = f"{pool_key_prefix}:{self.data_key}:{self.rule_key}:{now_dt}"
 | 
											
												
													
														|  | 
 |  | +                if self.redis_helper.key_exists(key_name=now_pool_recall_key):
 | 
											
												
													
														|  | 
 |  | +                    new_record = {'date': now_dt}
 | 
											
												
													
														|  | 
 |  | +                    self.redis_helper.set_data_to_redis(key_name=record_key,
 | 
											
												
													
														|  | 
 |  | +                                                        value=str(new_record),
 | 
											
												
													
														|  | 
 |  | +                                                        expire_time=expire_time)
 | 
											
												
													
														|  | 
 |  | +                    idx = 0
 | 
											
												
													
														|  | 
 |  | +                    self.redis_helper.del_keys(key_name=last_video_key)
 | 
											
												
													
														|  | 
 |  | +                    pool_recall_key = now_pool_recall_key
 | 
											
												
													
														|  | 
 |  | +                else:
 | 
											
												
													
														|  | 
 |  | +                    pool_recall_key = f"{pool_key_prefix}:{self.data_key}:{self.rule_key}:{record_dt}"
 | 
											
												
													
														|  | 
 |  | +                    idx = self.get_video_idx(pool_recall_key=pool_recall_key, last_video_key=last_video_key)
 | 
											
												
													
														|  | 
 |  | +            else:
 | 
											
												
													
														|  | 
 |  | +                idx = 0
 | 
											
												
													
														|  | 
 |  | +                self.redis_helper.del_keys(key_name=last_video_key)
 | 
											
												
													
														|  | 
 |  | +                pool_recall_key = self.update_last_video_record_by_day(record_key=record_key,
 | 
											
												
													
														|  | 
 |  | +                                                                       pool_key_prefix=pool_key_prefix,
 | 
											
												
													
														|  | 
 |  | +                                                                       expire_time=expire_time)
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +        return pool_recall_key, idx
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    def recall_update_by_day(self, size=4, key_flag='', expire_time=24*3600):
 | 
											
												
													
														|  | 
 |  | +        """
 | 
											
												
													
														|  | 
 |  | +        从天级更新列表中获取视频
 | 
											
												
													
														|  | 
 |  | +        :param size: 获取视频个数
 | 
											
												
													
														|  | 
 |  | +        :param key_flag: 视频表标记
 | 
											
												
													
														|  | 
 |  | +        :param expire_time: 末位视频记录redis过期时间
 | 
											
												
													
														|  | 
 |  | +        :return:
 | 
											
												
													
														|  | 
 |  | +        """
 | 
											
												
													
														|  | 
 |  | +        if key_flag == '30day':
 | 
											
												
													
														|  | 
 |  | +            # 相对30天计算列表的筛选结果
 | 
											
												
													
														|  | 
 |  | +            # 视频列表
 | 
											
												
													
														|  | 
 |  | +            pool_key_prefix = config_.RECALL_KEY_NAME_PREFIX_30DAY
 | 
											
												
													
														|  | 
 |  | +            # mid对应上一次视频位置 时间记录
 | 
											
												
													
														|  | 
 |  | +            record_key_prefix = config_.RECORD_KEY_NAME_PREFIX_LAST_VIDEO_30DAY
 | 
											
												
													
														|  | 
 |  | +            # mid对应上一次视频记录
 | 
											
												
													
														|  | 
 |  | +            last_video_key_prefix = config_.LAST_VIDEO_FROM_30DAY_PREFIX
 | 
											
												
													
														|  | 
 |  | +            push_from = config_.PUSH_FROM['rov_recall_30day']
 | 
											
												
													
														|  | 
 |  | +        else:
 | 
											
												
													
														|  | 
 |  | +            return []
 | 
											
												
													
														|  | 
 |  | +        # 获取相关redis key, 用户上一次在rov召回池对应的位置
 | 
											
												
													
														|  | 
 |  | +        pool_key, idx = self.get_last_recommend_video_idx_by_day(record_key_prefix=record_key_prefix,
 | 
											
												
													
														|  | 
 |  | +                                                                 pool_key_prefix=pool_key_prefix,
 | 
											
												
													
														|  | 
 |  | +                                                                 last_video_key_prefix=last_video_key_prefix,
 | 
											
												
													
														|  | 
 |  | +                                                                 expire_time=expire_time)
 | 
											
												
													
														|  | 
 |  | +        if not pool_key:
 | 
											
												
													
														|  | 
 |  | +            return []
 | 
											
												
													
														|  | 
 |  | +        recall_data = []
 | 
											
												
													
														|  | 
 |  | +        pool_recall_result = []
 | 
											
												
													
														|  | 
 |  | +        # 每次获取的视频数
 | 
											
												
													
														|  | 
 |  | +        get_size = size * 5
 | 
											
												
													
														|  | 
 |  | +        # 记录获取频次
 | 
											
												
													
														|  | 
 |  | +        freq = 0
 | 
											
												
													
														|  | 
 |  | +        while len(pool_recall_result) < size:
 | 
											
												
													
														|  | 
 |  | +            freq += 1
 | 
											
												
													
														|  | 
 |  | +            if freq > config_.MAX_FREQ_FROM_ROV_POOL:
 | 
											
												
													
														|  | 
 |  | +                break
 | 
											
												
													
														|  | 
 |  | +            # 获取数据
 | 
											
												
													
														|  | 
 |  | +            data = self.redis_helper.get_data_zset_with_index(key_name=pool_key,
 | 
											
												
													
														|  | 
 |  | +                                                              start=idx, end=idx + get_size - 1,
 | 
											
												
													
														|  | 
 |  | +                                                              with_scores=True)
 | 
											
												
													
														|  | 
 |  | +            if not data:
 | 
											
												
													
														|  | 
 |  | +                break
 | 
											
												
													
														|  | 
 |  | +            recall_data.extend(data)
 | 
											
												
													
														|  | 
 |  | +            # 获取视频id,并转换类型为int,并存储为key-value{videoId: score}
 | 
											
												
													
														|  | 
 |  | +            video_ids = []
 | 
											
												
													
														|  | 
 |  | +            video_score = {}
 | 
											
												
													
														|  | 
 |  | +            for value in data:
 | 
											
												
													
														|  | 
 |  | +                video_id = int(value[0])
 | 
											
												
													
														|  | 
 |  | +                video_ids.append(video_id)
 | 
											
												
													
														|  | 
 |  | +                video_score[video_id] = value[1]
 | 
											
												
													
														|  | 
 |  | +            # 过滤
 | 
											
												
													
														|  | 
 |  | +            filter_ = FilterVideos(request_id=self.request_id,
 | 
											
												
													
														|  | 
 |  | +                                   app_type=self.app_type, mid=self.mid, uid=self.uid, video_ids=video_ids)
 | 
											
												
													
														|  | 
 |  | +            ge = gevent.spawn(filter_.filter_videos)
 | 
											
												
													
														|  | 
 |  | +            ge.join()
 | 
											
												
													
														|  | 
 |  | +            filtered_result = ge.get()
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +            if filtered_result:
 | 
											
												
													
														|  | 
 |  | +                # 添加视频源参数 pushFrom, abCode
 | 
											
												
													
														|  | 
 |  | +                temp_result = [{'videoId': int(item), 'rovScore': video_score[int(item)],
 | 
											
												
													
														|  | 
 |  | +                                'pushFrom': push_from, 'abCode': self.ab_code}
 | 
											
												
													
														|  | 
 |  | +                               for item in filtered_result if video_score.get(int(item)) is not None]
 | 
											
												
													
														|  | 
 |  | +                pool_recall_result.extend(temp_result)
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +            idx += get_size
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +        pool_recall_result.sort(key=lambda x: x.get('rovScore', 0), reverse=True)
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +        if len(recall_data) > 0 and len(pool_recall_result) == 0 and self.mid:
 | 
											
												
													
														|  | 
 |  | +            # 召回数据不为空 & 过滤后结果为空 & mid不为空时,更新召回获取的末位视频id记录到定位的key中
 | 
											
												
													
														|  | 
 |  | +            last_video_key = f'{last_video_key_prefix}{self.app_type}:{self.mid}'
 | 
											
												
													
														|  | 
 |  | +            self.redis_helper.set_data_to_redis(key_name=last_video_key, value=recall_data[-1][0],
 | 
											
												
													
														|  | 
 |  | +                                                expire_time=expire_time)
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +        # log_.info({
 | 
											
												
													
														|  | 
 |  | +        #     'logTimestamp': int(time.time() * 1000),
 | 
											
												
													
														|  | 
 |  | +        #     'request_id': self.request_id,
 | 
											
												
													
														|  | 
 |  | +        #     'operation': push_from,
 | 
											
												
													
														|  | 
 |  | +        #     'pool_recall_result': pool_recall_result,
 | 
											
												
													
														|  | 
 |  | +        #     'executeTime': (time.time() - start_time) * 1000
 | 
											
												
													
														|  | 
 |  | +        # })
 | 
											
												
													
														|  | 
 |  | +        return pool_recall_result[:size]
 |