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