|
@@ -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,
|