Browse Source

当用户关闭或开启推送时,删除对应的redis缓存

tanghongbin 4 năm trước cách đây
mục cha
commit
da3e3f23ee
2 tập tin đã thay đổi với 20 bổ sung6 xóa
  1. 13 6
      Controller/DetectController.py
  2. 7 0
      Object/RedisObject.py

+ 13 - 6
Controller/DetectController.py

@@ -246,15 +246,14 @@ class DetectControllerView(View):
             if status == 0:
                 UidPushModel.objects.filter(uid_set__uid=uid).delete()
                 # 状态为0的时候删除redis缓存数据
-                ykey = '{uid}_redis_qs'.format(uid=uid)
-                redisObj = RedisObject(db=6, SERVER_HOST='push.dvema.com')
-                redisObj.del_data(key=ykey)
+                self.do_delete_redis(uid)
                 return response.json(0)
             elif status == 1:
                 uid_push_qs = UidPushModel.objects.filter(userID_id=userID, m_code=m_code, uid_set__uid=uid)
-                ykey = '{uid}_redis_qs'.format(uid=uid)
-                redisObj = RedisObject(db=6, SERVER_HOST='push.dvema.com')
-                redisObj.del_data(key=ykey)
+                # ykey = '{uid}_redis_qs'.format(uid=uid)
+                # redisObj = RedisObject(db=6, SERVER_HOST='push.dvema.com')
+                # redisObj.del_data(key=ykey)
+                self.do_delete_redis(uid)
                 if uid_push_qs.exists():
                     uid_push_update_dict = {
                         'appBundleId': appBundleId,
@@ -294,6 +293,14 @@ class DetectControllerView(View):
         else:
             return response.json(14)
 
+    def do_delete_redis(self, uid):
+        keyPattern = '{uid}*'.format(uid=uid)
+        redisObj = RedisObject(db=6, SERVER_HOST='push.dvema.com')
+        keys = redisObj.get_keys(keyPattern)
+        if keys:
+            for key in keys:
+                redisObj.del_data(key=key.decode())
+
     def do_update_interval(self, userID, request_dict, response):
         uid = request_dict.get('uid', None)
         interval = request_dict.get('interval', None)

+ 7 - 0
Object/RedisObject.py

@@ -84,3 +84,10 @@ class RedisObject:
             return ttl
         else:
             return 0
+
+    def get_keys(self, key):
+        keys = self.CONN.keys(key)
+        if keys:
+            return keys
+        else:
+            return False