|
@@ -439,6 +439,9 @@ class PoolRecall(object):
|
|
|
|
|
|
def flow_pool_recall(self, size=10, flow_pool_id=None, flow_pool_abtest_group=None):
|
|
def flow_pool_recall(self, size=10, flow_pool_id=None, flow_pool_abtest_group=None):
|
|
"""从流量池中获取视频"""
|
|
"""从流量池中获取视频"""
|
|
|
|
+ # add_flow_pool_recall_log
|
|
|
|
+ flow_pool_recall_process = {}
|
|
|
|
+
|
|
start_time = time.time()
|
|
start_time = time.time()
|
|
# 获取存在城市分组数据的城市编码列表
|
|
# 获取存在城市分组数据的城市编码列表
|
|
city_code_list = [code for _, code in config_.CITY_CODE.items()]
|
|
city_code_list = [code for _, code in config_.CITY_CODE.items()]
|
|
@@ -456,6 +459,10 @@ class PoolRecall(object):
|
|
region_code = '-1'
|
|
region_code = '-1'
|
|
|
|
|
|
flow_pool_key = self.get_pool_redis_key('flow', flow_pool_id=flow_pool_id)
|
|
flow_pool_key = self.get_pool_redis_key('flow', flow_pool_id=flow_pool_id)
|
|
|
|
+
|
|
|
|
+ # add_flow_pool_recall_log
|
|
|
|
+ flow_pool_recall_process['flow_pool_key'] = flow_pool_key
|
|
|
|
+
|
|
# print(flow_pool_key)
|
|
# print(flow_pool_key)
|
|
flow_pool_recall_result = []
|
|
flow_pool_recall_result = []
|
|
flow_pool_recall_videos = []
|
|
flow_pool_recall_videos = []
|
|
@@ -473,6 +480,10 @@ class PoolRecall(object):
|
|
data = self.redis_helper.get_data_zset_with_index(key_name=flow_pool_key,
|
|
data = self.redis_helper.get_data_zset_with_index(key_name=flow_pool_key,
|
|
start=idx, end=idx + get_size - 1,
|
|
start=idx, end=idx + get_size - 1,
|
|
with_scores=True)
|
|
with_scores=True)
|
|
|
|
+
|
|
|
|
+ # add_flow_pool_recall_log
|
|
|
|
+ flow_pool_recall_process['initial_data'] = data
|
|
|
|
+
|
|
# et_get = time.time()
|
|
# et_get = time.time()
|
|
# log_.info('get data from flow pool redis: freq = {}, data = {}, execute time = {}ms'.format(
|
|
# log_.info('get data from flow pool redis: freq = {}, data = {}, execute time = {}ms'.format(
|
|
# freq, data, (et_get - st_get) * 1000))
|
|
# freq, data, (et_get - st_get) * 1000))
|
|
@@ -508,12 +519,20 @@ class PoolRecall(object):
|
|
region_code=region_code, shield_config=self.shield_config)
|
|
region_code=region_code, shield_config=self.shield_config)
|
|
ge.join()
|
|
ge.join()
|
|
filtered_result = ge.get()
|
|
filtered_result = ge.get()
|
|
|
|
+
|
|
|
|
+ # add_flow_pool_recall_log
|
|
|
|
+ flow_pool_recall_process['filtered_data'] = filtered_result
|
|
|
|
+
|
|
# 检查可分发数
|
|
# 检查可分发数
|
|
if filtered_result:
|
|
if filtered_result:
|
|
st_check = time.time()
|
|
st_check = time.time()
|
|
ge = gevent.spawn(self.check_video_counts, video_ids=filtered_result, flow_pool_mapping=video_mapping)
|
|
ge = gevent.spawn(self.check_video_counts, video_ids=filtered_result, flow_pool_mapping=video_mapping)
|
|
ge.join()
|
|
ge.join()
|
|
check_result = ge.get()
|
|
check_result = ge.get()
|
|
|
|
+
|
|
|
|
+ # add_flow_pool_recall_log
|
|
|
|
+ flow_pool_recall_process['check_counts_data'] = check_result
|
|
|
|
+
|
|
# log_.info({
|
|
# log_.info({
|
|
# 'logTimestamp': int(time.time() * 1000),
|
|
# 'logTimestamp': int(time.time() * 1000),
|
|
# 'request_id': self.request_id,
|
|
# 'request_id': self.request_id,
|
|
@@ -555,7 +574,7 @@ class PoolRecall(object):
|
|
# 'executeTime': (time.time() - start_time) * 1000
|
|
# 'executeTime': (time.time() - start_time) * 1000
|
|
# })
|
|
# })
|
|
|
|
|
|
- return flow_pool_recall_result[:size]
|
|
|
|
|
|
+ return flow_pool_recall_result[:size], flow_pool_recall_process
|
|
|
|
|
|
def flow_pool_recall_new(self, size=10, flow_pool_id=None):
|
|
def flow_pool_recall_new(self, size=10, flow_pool_id=None):
|
|
"""从流量池中获取视频"""
|
|
"""从流量池中获取视频"""
|
|
@@ -676,6 +695,9 @@ class PoolRecall(object):
|
|
|
|
|
|
def flow_pool_recall_new_with_level(self, size=10, flow_pool_id=None, flow_pool_abtest_group=None):
|
|
def flow_pool_recall_new_with_level(self, size=10, flow_pool_id=None, flow_pool_abtest_group=None):
|
|
"""从流量池中获取视频"""
|
|
"""从流量池中获取视频"""
|
|
|
|
+ # add_flow_pool_recall_log
|
|
|
|
+ flow_pool_recall_process = {}
|
|
|
|
+
|
|
start_time = time.time()
|
|
start_time = time.time()
|
|
# 获取存在城市分组数据的城市编码列表
|
|
# 获取存在城市分组数据的城市编码列表
|
|
city_code_list = [code for _, code in config_.CITY_CODE.items()]
|
|
city_code_list = [code for _, code in config_.CITY_CODE.items()]
|
|
@@ -693,8 +715,13 @@ class PoolRecall(object):
|
|
region_code = '-1'
|
|
region_code = '-1'
|
|
|
|
|
|
flow_pool_key, level = self.get_pool_redis_key('flow_set_level', flow_pool_id=flow_pool_id)
|
|
flow_pool_key, level = self.get_pool_redis_key('flow_set_level', flow_pool_id=flow_pool_id)
|
|
|
|
+
|
|
|
|
+ # add_flow_pool_recall_log
|
|
|
|
+ flow_pool_recall_process['flow_pool_key'] = flow_pool_key
|
|
|
|
+ flow_pool_recall_process['level'] = level
|
|
|
|
+
|
|
if flow_pool_key is None:
|
|
if flow_pool_key is None:
|
|
- return []
|
|
|
|
|
|
+ return [], flow_pool_recall_process
|
|
# print(flow_pool_key)
|
|
# print(flow_pool_key)
|
|
flow_pool_recall_result = []
|
|
flow_pool_recall_result = []
|
|
flow_pool_recall_videos = []
|
|
flow_pool_recall_videos = []
|
|
@@ -710,6 +737,10 @@ class PoolRecall(object):
|
|
# 获取数据
|
|
# 获取数据
|
|
# st_get = time.time()
|
|
# st_get = time.time()
|
|
data = self.redis_helper.get_data_with_count_from_set(key_name=flow_pool_key, count=get_size)
|
|
data = self.redis_helper.get_data_with_count_from_set(key_name=flow_pool_key, count=get_size)
|
|
|
|
+
|
|
|
|
+ # add_flow_pool_recall_log
|
|
|
|
+ flow_pool_recall_process['initial_data'] = data
|
|
|
|
+
|
|
# et_get = time.time()
|
|
# et_get = time.time()
|
|
# log_.info('get data from flow pool redis: freq = {}, data = {}, execute time = {}ms'.format(
|
|
# log_.info('get data from flow pool redis: freq = {}, data = {}, execute time = {}ms'.format(
|
|
# freq, data, (et_get - st_get) * 1000))
|
|
# freq, data, (et_get - st_get) * 1000))
|
|
@@ -744,12 +775,20 @@ class PoolRecall(object):
|
|
region_code=region_code, shield_config=self.shield_config)
|
|
region_code=region_code, shield_config=self.shield_config)
|
|
ge.join()
|
|
ge.join()
|
|
filtered_result = ge.get()
|
|
filtered_result = ge.get()
|
|
|
|
+
|
|
|
|
+ # add_flow_pool_recall_log
|
|
|
|
+ flow_pool_recall_process['filtered_data'] = filtered_result
|
|
|
|
+
|
|
# 检查可分发数
|
|
# 检查可分发数
|
|
if filtered_result:
|
|
if filtered_result:
|
|
# st_check = time.time()
|
|
# st_check = time.time()
|
|
ge = gevent.spawn(self.check_video_counts_new_with_level, video_ids=filtered_result, flow_pool_mapping=video_mapping)
|
|
ge = gevent.spawn(self.check_video_counts_new_with_level, video_ids=filtered_result, flow_pool_mapping=video_mapping)
|
|
ge.join()
|
|
ge.join()
|
|
check_result = ge.get()
|
|
check_result = ge.get()
|
|
|
|
+
|
|
|
|
+ # add_flow_pool_recall_log
|
|
|
|
+ flow_pool_recall_process['check_counts_data'] = check_result
|
|
|
|
+
|
|
# log_.info({
|
|
# log_.info({
|
|
# 'logTimestamp': int(time.time() * 1000),
|
|
# 'logTimestamp': int(time.time() * 1000),
|
|
# 'request_id': self.request_id,
|
|
# 'request_id': self.request_id,
|
|
@@ -791,10 +830,12 @@ class PoolRecall(object):
|
|
# 'executeTime': (time.time() - start_time) * 1000
|
|
# 'executeTime': (time.time() - start_time) * 1000
|
|
# })
|
|
# })
|
|
|
|
|
|
- return flow_pool_recall_result[:size]
|
|
|
|
|
|
+ return flow_pool_recall_result[:size], flow_pool_recall_process
|
|
|
|
|
|
def flow_pool_recall_new_with_level_score(self, size=10, flow_pool_id=None, flow_pool_abtest_group=None):
|
|
def flow_pool_recall_new_with_level_score(self, size=10, flow_pool_id=None, flow_pool_abtest_group=None):
|
|
"""从流量池中获取视频"""
|
|
"""从流量池中获取视频"""
|
|
|
|
+ # add_flow_pool_recall_log
|
|
|
|
+ flow_pool_recall_process = {}
|
|
# 获取存在城市分组数据的城市编码列表
|
|
# 获取存在城市分组数据的城市编码列表
|
|
city_code_list = [code for _, code in config_.CITY_CODE.items()]
|
|
city_code_list = [code for _, code in config_.CITY_CODE.items()]
|
|
# 获取provinceCode
|
|
# 获取provinceCode
|
|
@@ -811,8 +852,13 @@ class PoolRecall(object):
|
|
region_code = '-1'
|
|
region_code = '-1'
|
|
|
|
|
|
flow_pool_key, level = self.get_pool_redis_key('flow_set_level_score', flow_pool_id=flow_pool_id)
|
|
flow_pool_key, level = self.get_pool_redis_key('flow_set_level_score', flow_pool_id=flow_pool_id)
|
|
|
|
+
|
|
|
|
+ # add_flow_pool_recall_log
|
|
|
|
+ flow_pool_recall_process['flow_pool_key'] = flow_pool_key
|
|
|
|
+ flow_pool_recall_process['level'] = level
|
|
|
|
+
|
|
if flow_pool_key is None:
|
|
if flow_pool_key is None:
|
|
- return []
|
|
|
|
|
|
+ return [], flow_pool_recall_process
|
|
# print(flow_pool_key)
|
|
# print(flow_pool_key)
|
|
flow_pool_recall_result = []
|
|
flow_pool_recall_result = []
|
|
flow_pool_recall_videos = []
|
|
flow_pool_recall_videos = []
|
|
@@ -830,6 +876,10 @@ class PoolRecall(object):
|
|
data = self.redis_helper.get_data_zset_with_index(key_name=flow_pool_key,
|
|
data = self.redis_helper.get_data_zset_with_index(key_name=flow_pool_key,
|
|
start=idx, end=idx + get_size - 1,
|
|
start=idx, end=idx + get_size - 1,
|
|
with_scores=True)
|
|
with_scores=True)
|
|
|
|
+ # add_flow_pool_recall_log
|
|
|
|
+ print(data)
|
|
|
|
+ flow_pool_recall_process['initial_data'] = data
|
|
|
|
+
|
|
# et_get = time.time()
|
|
# et_get = time.time()
|
|
# log_.info('get data from flow pool redis: freq = {}, data = {}, execute time = {}ms'.format(
|
|
# log_.info('get data from flow pool redis: freq = {}, data = {}, execute time = {}ms'.format(
|
|
# freq, data, (et_get - st_get) * 1000))
|
|
# freq, data, (et_get - st_get) * 1000))
|
|
@@ -865,6 +915,10 @@ class PoolRecall(object):
|
|
region_code=region_code, shield_config=self.shield_config)
|
|
region_code=region_code, shield_config=self.shield_config)
|
|
ge.join()
|
|
ge.join()
|
|
filtered_result = ge.get()
|
|
filtered_result = ge.get()
|
|
|
|
+
|
|
|
|
+ # add_flow_pool_recall_log
|
|
|
|
+ flow_pool_recall_process['filtered_data'] = filtered_result
|
|
|
|
+
|
|
# 检查可分发数
|
|
# 检查可分发数
|
|
if filtered_result:
|
|
if filtered_result:
|
|
# st_check = time.time()
|
|
# st_check = time.time()
|
|
@@ -872,6 +926,10 @@ class PoolRecall(object):
|
|
video_ids=filtered_result, flow_pool_mapping=video_mapping)
|
|
video_ids=filtered_result, flow_pool_mapping=video_mapping)
|
|
ge.join()
|
|
ge.join()
|
|
check_result = ge.get()
|
|
check_result = ge.get()
|
|
|
|
+
|
|
|
|
+ # add_flow_pool_recall_log
|
|
|
|
+ flow_pool_recall_process['check_counts_data'] = check_result
|
|
|
|
+
|
|
# log_.info({
|
|
# log_.info({
|
|
# 'logTimestamp': int(time.time() * 1000),
|
|
# 'logTimestamp': int(time.time() * 1000),
|
|
# 'request_id': self.request_id,
|
|
# 'request_id': self.request_id,
|
|
@@ -913,7 +971,7 @@ class PoolRecall(object):
|
|
# 'executeTime': (time.time() - start_time) * 1000
|
|
# 'executeTime': (time.time() - start_time) * 1000
|
|
# })
|
|
# })
|
|
|
|
|
|
- return flow_pool_recall_result[:size]
|
|
|
|
|
|
+ return flow_pool_recall_result[:size], flow_pool_recall_process
|
|
|
|
|
|
def check_video_counts(self, video_ids, flow_pool_mapping):
|
|
def check_video_counts(self, video_ids, flow_pool_mapping):
|
|
"""
|
|
"""
|