12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- 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!")
|