|
@@ -220,7 +220,7 @@ SELECT
|
|
|
*
|
|
|
from candidate_item
|
|
|
""".format(dt=dt)
|
|
|
- # print(sql)
|
|
|
+ # log_.info(sql)
|
|
|
data = exe_sql(project, sql)
|
|
|
print('sql done')
|
|
|
# data.to_csv('./data/ad_out_sample_v2_item.{datetime}'.format(datetime=datetime), sep='\t')
|
|
@@ -255,7 +255,7 @@ from candidate_item
|
|
|
# json.dump(item_h_dict, fout, indent=2, ensure_ascii=False, sort_keys=True)
|
|
|
|
|
|
|
|
|
-def timer_check():
|
|
|
+def timer_check(dt):
|
|
|
try:
|
|
|
project = config_.ad_model_data['ad_out_v1'].get('project')
|
|
|
table = config_.ad_model_data['ad_out_v1'].get('table')
|
|
@@ -264,7 +264,9 @@ def timer_check():
|
|
|
now_dt = datetime.datetime.strftime(now_date, '%Y%m%d')
|
|
|
yesterday_dt = datetime.datetime.strftime(yesterday_date, '%Y%m%d')
|
|
|
log_.info(f"now_dt: {now_dt}")
|
|
|
- log_.info(f"yesterday_dt: {yesterday_dt}")
|
|
|
+ if dt is not None:
|
|
|
+ yesterday_dt = dt
|
|
|
+ log_.info(f"update_dt: {yesterday_dt}")
|
|
|
now_min = datetime.datetime.now().minute
|
|
|
# 查看当前更新的数据是否已准备好
|
|
|
data_count = data_check(project=project, table=table, dt=yesterday_dt)
|
|
@@ -275,7 +277,9 @@ def timer_check():
|
|
|
log_.info('update_offline_score_item end!')
|
|
|
else:
|
|
|
# 数据没准备好,5分钟后重新检查
|
|
|
- Timer(5 * 60, timer_check).start()
|
|
|
+ wait_seconds = 5 * 60
|
|
|
+ log_.info('data not ready, wait {}s'.format(wait_seconds))
|
|
|
+ Timer(wait_seconds, timer_check).start()
|
|
|
|
|
|
except Exception as e:
|
|
|
log_.error(f"用户广告跳出率预估离线item数据更新失败 exception: {e}, traceback: {traceback.format_exc()}")
|
|
@@ -289,12 +293,12 @@ def timer_check():
|
|
|
|
|
|
|
|
|
if __name__ == "__main__":
|
|
|
- dt = sys.argv[1]
|
|
|
- if len(sys.argv) > 2:
|
|
|
+ dt = None
|
|
|
+ if len(sys.argv) > 1:
|
|
|
+ dt = sys.argv[1]
|
|
|
log_.info('## 手动更新:{}'.format(dt))
|
|
|
- update_offline_score_item(dt)
|
|
|
else:
|
|
|
log_.info('## 自动更新')
|
|
|
- timer_check()
|
|
|
+ timer_check(dt)
|
|
|
|
|
|
|