浏览代码

消息文案通过redis获取加异常捕获

zhangdongming 4 月之前
父节点
当前提交
d3e15779c3
共有 1 个文件被更改,包括 23 次插入23 次删除
  1. 23 23
      Service/DevicePushService.py

+ 23 - 23
Service/DevicePushService.py

@@ -783,35 +783,35 @@ class DevicePushService:
     @staticmethod
     def get_event_type_text_v2(lang, event_type, dealings_type, redis_obj):
         """ 改造后:优先读缓存,无缓存时读配置并写入 """
-
-        # 生成缓存键(示例:event_msg:en:66:1)
-        cache_key = f"event_msg:{lang}:{event_type}"
-        field = str(dealings_type) if dealings_type else 'default'
-
-        # 1. 先尝试从 Redis 读取
-        cached_msg = redis_obj.hget_data(cache_key, field)
-        if cached_msg:
-            return cached_msg
-
-        # 2. 缓存未命中,从原配置读取
-        config = EVENT_CONFIGS.get(lang, EVENT_CONFIGS['en'])
-        default_msg = DEFAULT_TEXTS.get(lang, DEFAULT_TEXTS['en'])
-        event_data = config.get(event_type)
-
-        # 处理子类型
-        if isinstance(event_data, dict):
-            msg = event_data.get(dealings_type, default_msg)
-        else:
-            msg = event_data if event_data is not None else default_msg
-
-        # 3. 写入 Redis(异步避免阻塞)
+        msg = ''
         try:
+            # 生成缓存键(示例:event_msg:en:66:1)
+            cache_key = f"event_msg:{lang}:{event_type}"
+            field = str(dealings_type) if dealings_type else 'default'
+
+            # 1. 先尝试从 Redis 读取
+            cached_msg = redis_obj.hget_data(cache_key, field)
+            if cached_msg:
+                return cached_msg
+
+            # 2. 缓存未命中,从原配置读取
+            config = EVENT_CONFIGS.get(lang, EVENT_CONFIGS['en'])
+            default_msg = DEFAULT_TEXTS.get(lang, DEFAULT_TEXTS['en'])
+            event_data = config.get(event_type)
+
+            # 处理子类型
+            if isinstance(event_data, dict):
+                msg = event_data.get(dealings_type, default_msg)
+            else:
+                msg = event_data if event_data is not None else default_msg
+
             redis_obj.hset_data(cache_key, field, msg, 3600 * 24 * 7)
+            return msg
         except Exception as e:
             ERROR_INFO_LOGGER.error('redis写入文案异常lang:{},event_type:{},error行数:{},内容:{}'
                                     .format(lang, event_type, e.__traceback__.tb_lineno, repr(e)))
+            return msg
 
-        return msg
 
     @staticmethod
     def do_xmpush(channel_id, uid, channel, appBundleId, token_val, event_type, n_time,