|
@@ -1,5 +1,6 @@
|
|
|
import datetime
|
|
|
import json
|
|
|
+import time
|
|
|
import traceback
|
|
|
from threading import Timer
|
|
|
from utils import RedisHelper, data_check, get_feature_data, send_msg_to_feishu
|
|
@@ -63,26 +64,25 @@ def update_ad_arpu(project, table, dt):
|
|
|
log_.info(f"update arpu finished!")
|
|
|
|
|
|
|
|
|
-def timer_check():
|
|
|
+def timer_check(dt):
|
|
|
try:
|
|
|
project = 'loghubods'
|
|
|
- table = 'dau_ad_view_hour'
|
|
|
- now_date = datetime.datetime.today()
|
|
|
+ # table = 'dau_ad_view_hour'
|
|
|
+ table = 'dau_ad_view_per_5min'
|
|
|
now_min = datetime.datetime.now().minute
|
|
|
- dt = datetime.datetime.strftime(now_date - datetime.timedelta(hours=1), '%Y%m%d%H')
|
|
|
- log_.info(f"now_date: {dt}")
|
|
|
+ log_.info(f"now_min: {now_min}")
|
|
|
# 查看当前更新的数据是否已准备好
|
|
|
data_count = data_check(project=project, table=table, dt=dt)
|
|
|
if data_count > 0:
|
|
|
# 数据准备好,进行更新
|
|
|
update_ad_arpu(project=project, table=table, dt=dt)
|
|
|
log_.info(f"ad arpu update end!")
|
|
|
- elif now_min > 30:
|
|
|
+ elif now_min % 5 > 1:
|
|
|
log_.info('数据未准备好!')
|
|
|
return
|
|
|
else:
|
|
|
# 数据没准备好,1分钟后重新检查
|
|
|
- Timer(60, timer_check).start()
|
|
|
+ Timer(60, timer_check, (dt,)).start()
|
|
|
|
|
|
except Exception as e:
|
|
|
log_.error(f"新策略 -- arpu值更新失败, exception: {e}, traceback: {traceback.format_exc()}")
|
|
@@ -96,4 +96,11 @@ def timer_check():
|
|
|
|
|
|
|
|
|
if __name__ == '__main__':
|
|
|
- timer_check()
|
|
|
+ now_date = datetime.datetime.today()
|
|
|
+ # dt_min = datetime.datetime.now().minute
|
|
|
+ # log_.info(f"dt_min: {dt_min}")
|
|
|
+ dt = datetime.datetime.strftime(now_date - datetime.timedelta(minutes=5), '%Y%m%d%H%M')
|
|
|
+ dt = f"{dt}00"
|
|
|
+ log_.info(f"now_date: {dt}")
|
|
|
+ timer_check(dt=dt)
|
|
|
+
|