liqian hace 1 año
padre
commit
cadf077e9f
Se han modificado 1 ficheros con 18 adiciones y 8 borrados
  1. 18 8
      ad_creative_cvr_update.py

+ 18 - 8
ad_creative_cvr_update.py

@@ -12,7 +12,7 @@ config_ = set_config()
 log_ = Log()
 
 
-def main(project, table):
+def main(project, table, dt):
     try:
         # 获取广告ad_idea_id对应的点击次数、转化次数 和 cvr
         odps = ODPS(
@@ -21,7 +21,17 @@ def main(project, table):
             project=project,
             endpoint=config_.ODPS_CONFIG['ENDPOINT'],
         )
-        records = odps.read_table(name=table)
+        t = odps.get_table(name=table)
+        if not t.exist_partition(partition_spec=f'dt={dt}'):
+            log_.info(f"广告Thompson-cvr数据更新失败, 分区dt={dt}数据未准备好")
+            send_msg_to_feishu(
+                webhook=config_.FEISHU_ROBOT['server_robot'].get('webhook'),
+                key_word=config_.FEISHU_ROBOT['server_robot'].get('key_word'),
+                msg_text=f"rov-offline{config_.ENV_TEXT} - 广告Thompson-cvr数据更新失败\n"
+                         f"分区dt={dt}数据未准备好"
+            )
+            return
+        records = odps.read_table(name=table, partition='dt=%s' % dt)
         ad_creative_data = []
         for item in records:
             creative_id = item['creative_id']
@@ -54,11 +64,11 @@ def main(project, table):
                 continue
         log_.info(f"to redis count: {i}")
     except Exception as e:
-        log_.error(f"广告Thompson-cvr数更新失败, exception: {e}, traceback: {traceback.format_exc()}")
+        log_.error(f"广告Thompson-cvr数更新失败, exception: {e}, traceback: {traceback.format_exc()}")
         send_msg_to_feishu(
             webhook=config_.FEISHU_ROBOT['server_robot'].get('webhook'),
             key_word=config_.FEISHU_ROBOT['server_robot'].get('key_word'),
-            msg_text=f"rov-offline{config_.ENV_TEXT} - 广告Thompson-cvr数更新失败\n"
+            msg_text=f"rov-offline{config_.ENV_TEXT} - 广告Thompson-cvr数更新失败\n"
                      f"exception: {e}\n"
                      f"traceback: {traceback.format_exc()}"
         )
@@ -66,10 +76,10 @@ def main(project, table):
 
 if __name__ == '__main__':
     project = 'loghubods'
-    table = ''
+    table = 'ad_own_creative_cvr'
     now_date = datetime.datetime.today()
-    dt = datetime.datetime.strftime(now_date, '%Y%m%d %H:%M:%S')
-    log_.info(f"dt: {dt}")
+    log_.info(f"now: {datetime.datetime.strftime(now_date, '%Y%m%d %H:%M:%S')}")
+    dt = datetime.datetime.strftime(now_date - datetime.timedelta(hours=1), '%Y%m%d%H')
     start_time = time.time()
-    main(project=project, table=table)
+    main(project=project, table=table, dt=dt)
     log_.info(f"excuteTime: {(time.time() - start_time) * 1000}ms")