liqian 2 年之前
父節點
當前提交
7e5ca9f364
共有 2 個文件被更改,包括 38 次插入9 次删除
  1. 16 4
      config.py
  2. 22 5
      religion_class_user_update.py

+ 16 - 4
config.py

@@ -398,15 +398,27 @@ class BaseConfig(object):
     # 宗教用户更新使用数据
     RELIGION_USERS = {
         'catholicism': {
-            'project': 'loghubods',
-            'table': 'catholicism_midlist',
+            'day': {
+                'project': 'loghubods',
+                'table': 'catholicism_midlist',
+            },
+            'hour': {
+                'project': 'loghubods',
+                'table': 'catholicism_midlist_today',
+            },
             # 用户列表更新结果存放 redis key 前缀,完整格式:'religion:catholicism:users:item:{hash_tag}:{date}'
             'key_name_prefix': 'religion:catholicism:users:item:',
         },  # 天主教
 
         'christianity': {
-            'project': 'loghubods',
-            'table': 'christianity_midlist',
+            'day': {
+                'project': 'loghubods',
+                'table': 'christianity_midlist',
+            },
+            'hour': {
+                'project': 'loghubods',
+                'table': 'christianity_midlist_today',
+            },
             # 用户列表更新结果存放 redis key 前缀,完整格式:'religion:christianity:users:item:{hash_tag}:{date}'
             'key_name_prefix': 'religion:christianity:users:item:',
         },  # 基督教

+ 22 - 5
religion_class_user_update.py

@@ -63,27 +63,44 @@ def get_religion_users(now_date, project, table, key_name_prefix):
         else:
             hash_result[hash_tag] = [mid]
             hash_tag_list.append(hash_tag)
-
+    log_.info(f"hash_result_count: {len(hash_result)}")
     # 写入对应的redis
+    if len(hash_result) == 0:
+        return
     redis_helper = RedisHelper()
-    for key, val in hash_result:
+    for key, val in hash_result.items():
+        log_.info(f"key: {key}, val_count: {len(val)}")
         if len(val) > 0:
             key_name = f"{key_name_prefix}{key}:{datetime.datetime.strftime(now_date, '%Y%m%d')}"
             redis_helper.add_data_with_set(key_name=key_name, values=val, expire_time=2 * 24 * 3600)
 
 
 def timer_check(religion_name):
-    project = config_.RELIGION_USERS[religion_name]['project']
-    table = config_.RELIGION_USERS[religion_name]['table']
     key_name_prefix = config_.RELIGION_USERS[religion_name]['key_name_prefix']
     now_date = datetime.datetime.today()
-    log_.info(f"now_date: {datetime.datetime.strftime(now_date, '%Y%m%d%H')}")
+    now_h = datetime.datetime.now().hour
+    log_.info(f"now_date: {datetime.datetime.strftime(now_date, '%Y%m%d')}, now_h: {now_h}")
+    if now_h == 3:
+        data_class = 'day'
+    else:
+        data_class = 'hour'
+    log_.info(f"data_class: {data_class}")
+    project = config_.RELIGION_USERS[religion_name][data_class]['project']
+    table = config_.RELIGION_USERS[religion_name][data_class]['table']
     # 查看当天更新的数据是否已准备好
     data_count = data_check(project=project, table=table, now_date=now_date)
     if data_count > 0:
         log_.info(f'religion_name = {religion_name}, religion_users_count = {data_count}')
         # 数据准备好,进行更新
         get_religion_users(now_date=now_date, project=project, table=table, key_name_prefix=key_name_prefix)
+        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} - 宗教用户数据更新完成\n"
+                     f"religion_name: {religion_name}\n"
+                     f"now_date: {datetime.datetime.strftime(now_date, '%Y%m%d')}\n"
+                     f"now_h: {now_h}\n"
+        )
     else:
         # 数据没准备好,1分钟后重新检查
         Timer(5 * 60, timer_check, args=[religion_name]).start()