Ver Fonte

修复定制化推送消息重复保存数据问题2

locky há 1 ano atrás
pai
commit
1b3d3f0e52
2 ficheiros alterados com 5 adições e 5 exclusões
  1. 2 2
      Object/RedisObject.py
  2. 3 3
      Service/CustomizedPushService.py

+ 2 - 2
Object/RedisObject.py

@@ -2,7 +2,7 @@ import redis,ssl
 from AnsjerPush.config import REDIS_ADDRESS, CONFIG_INFO, CONFIG_US
 
 # 本地调试把注释打开
-# REDIS_ADDRESS = '127.0.0.1'
+REDIS_ADDRESS = '127.0.0.1'
 
 class RedisObject:
 
@@ -82,7 +82,7 @@ class RedisObject:
 
     def lindex(self, name, index=-1):
         """
-        对一个列表进行修剪(trim),让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除
+        根据下标查找元素
         @param name: 列表名称
         @param index: 区间结束下标, -1:最后一个元素
         @return : bool

+ 3 - 3
Service/CustomizedPushService.py

@@ -131,11 +131,11 @@ class CustomizedPushObject:
         if push_succeed:
             info = '{}推送成功'
 
-            # 已存表用户保存到redis,推送成功不再保存数据,避免重复保存
+            # 已存表用户保存到redis列表,推送成功不再保存数据,避免重复保存
             redis_obj = RedisObject()
             key = 'customized_pushed_user_list'
-            saved = redis_obj.lindex(key)
-            if saved is None:
+            customized_pushed_user_list = redis_obj.lrange(key, 0, -1)
+            if user_id not in customized_pushed_user_list:
                 redis_obj.rpush(key, user_id)
                 SysMsgModel.objects.create(
                     userID_id=user_id, title=title, msg=msg, jumpLink=link, addTime=n_time, updTime=n_time