Sfoglia il codice sorgente

add auto update item

yangxiaohui 1 anno fa
parent
commit
a07857ba95
1 ha cambiato i file con 12 aggiunte e 8 eliminazioni
  1. 12 8
      ad_out_v1_get_offline_score_item.py

+ 12 - 8
ad_out_v1_get_offline_score_item.py

@@ -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)