|
@@ -0,0 +1,97 @@
|
|
|
+import datetime
|
|
|
+from config import set_config
|
|
|
+from utils import RedisHelper, send_msg_to_feishu
|
|
|
+from log import Log
|
|
|
+
|
|
|
+config_, _ = set_config()
|
|
|
+log_ = Log()
|
|
|
+redis_helper = RedisHelper()
|
|
|
+
|
|
|
+region_code = {
|
|
|
+ '河北省': '130000',
|
|
|
+ '山西省': '140000',
|
|
|
+ '辽宁省': '210000',
|
|
|
+ '吉林省': '220000',
|
|
|
+ '黑龙江省': '230000',
|
|
|
+ '江苏省': '320000',
|
|
|
+ '浙江省': '330000',
|
|
|
+ '安徽省': '340000',
|
|
|
+ '福建省': '350000',
|
|
|
+ '江西省': '360000',
|
|
|
+ '山东省': '370000',
|
|
|
+ '河南省': '410000',
|
|
|
+ '湖北省': '420000',
|
|
|
+ '湖南省': '430000',
|
|
|
+ '广东省': '440000',
|
|
|
+ '海南省': '460000',
|
|
|
+ '四川省': '510000',
|
|
|
+ '贵州省': '520000',
|
|
|
+ '云南省': '530000',
|
|
|
+ '陕西省': '610000',
|
|
|
+ '甘肃省': '620000',
|
|
|
+ '青海省': '630000',
|
|
|
+ '台湾省': '710000',
|
|
|
+ '北京': '110000',
|
|
|
+ '天津': '120000',
|
|
|
+ '内蒙古': '150000',
|
|
|
+ '上海': '310000',
|
|
|
+ '广西': '450000',
|
|
|
+ '重庆': '500000',
|
|
|
+ '西藏': '540000',
|
|
|
+ '宁夏': '640000',
|
|
|
+ '新疆': '650000',
|
|
|
+ '香港': '810000',
|
|
|
+ '澳门': '820000',
|
|
|
+ 'None': '-1'
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+def get_redis_data_keys(now_date, now_h):
|
|
|
+ # 检查所需列表是否已更新好
|
|
|
+ redis_data_keys = []
|
|
|
+ # rov模型预测列表
|
|
|
+ if now_h > 6:
|
|
|
+ rov_key_name = f"{config_.RECALL_KEY_NAME_PREFIX}{now_date}"
|
|
|
+ redis_data_keys.append(rov_key_name)
|
|
|
+ # 地域分组小时级列表
|
|
|
+ rule_params = config_.RULE_PARAMS_REGION
|
|
|
+ key_prefix_list = [
|
|
|
+ config_.RECALL_KEY_NAME_PREFIX_REGION_BY_H,
|
|
|
+ config_.RECALL_KEY_NAME_PREFIX_DUP1_REGION_24H_H,
|
|
|
+ config_.RECALL_KEY_NAME_PREFIX_DUP2_REGION_24H_H,
|
|
|
+ config_.RECALL_KEY_NAME_PREFIX_DUP_REGION_H
|
|
|
+ ]
|
|
|
+ region_code_list = [code for region, code in region_code.items()]
|
|
|
+ for rule_key, _ in rule_params.items():
|
|
|
+ for region in region_code_list:
|
|
|
+ if region == '-1':
|
|
|
+ region_key_name = [f"{key_prefix_list[-1]}{region}.{rule_key}.{now_date}.{now_h}"]
|
|
|
+ else:
|
|
|
+ region_key_name = [f"{key_prefix}{region}.{rule_key}.{now_date}.{now_h}"
|
|
|
+ for key_prefix in key_prefix_list]
|
|
|
+ redis_data_keys.extend(region_key_name)
|
|
|
+
|
|
|
+ return redis_data_keys
|
|
|
+
|
|
|
+
|
|
|
+def monitor(now_date, now_h):
|
|
|
+ redis_data_keys = get_redis_data_keys(now_date=now_date, now_h=now_h)
|
|
|
+ log_.info(f"redis_data_keys = {redis_data_keys}")
|
|
|
+ for key_name in redis_data_keys:
|
|
|
+ if not redis_helper.key_exists(key_name=key_name):
|
|
|
+ msg_text = f"{config_.ENV_TEXT} —— now_date = {now_date}, now_h = {now_h}, key = {key_name}, " \
|
|
|
+ f"数据未按时更新,请及时查看解决。"
|
|
|
+ log_.info(f"msg_text = {msg_text}")
|
|
|
+ send_msg_to_feishu(
|
|
|
+ webhook=config_.FEISHU_ROBOT['server_robot'].get('webhook'),
|
|
|
+ key_word=config_.FEISHU_ROBOT['server_robot'].get('key_word'),
|
|
|
+ msg_text=msg_text
|
|
|
+ )
|
|
|
+
|
|
|
+
|
|
|
+if __name__ == '__main__':
|
|
|
+ now_date = datetime.datetime.today().strftime('%Y%m%d')
|
|
|
+ now_h = datetime.datetime.now().hour
|
|
|
+ log_.info(f"now_date = {now_date}, now_h = {now_h}")
|
|
|
+ monitor(now_date=now_date, now_h=now_h)
|
|
|
+ log_.info("end!")
|