Explorar el Código

Merge remote-tracking branch 'remotes/origin/dev' into test

tanghongbin hace 4 años
padre
commit
38582fc44e
Se han modificado 2 ficheros con 20 adiciones y 6 borrados
  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:
             if status == 0:
                 UidPushModel.objects.filter(uid_set__uid=uid).delete()
                 UidPushModel.objects.filter(uid_set__uid=uid).delete()
                 # 状态为0的时候删除redis缓存数据
                 # 状态为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)
                 return response.json(0)
             elif status == 1:
             elif status == 1:
                 uid_push_qs = UidPushModel.objects.filter(userID_id=userID, m_code=m_code, uid_set__uid=uid)
                 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():
                 if uid_push_qs.exists():
                     uid_push_update_dict = {
                     uid_push_update_dict = {
                         'appBundleId': appBundleId,
                         'appBundleId': appBundleId,
@@ -294,6 +293,14 @@ class DetectControllerView(View):
         else:
         else:
             return response.json(14)
             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):
     def do_update_interval(self, userID, request_dict, response):
         uid = request_dict.get('uid', None)
         uid = request_dict.get('uid', None)
         interval = request_dict.get('interval', None)
         interval = request_dict.get('interval', None)

+ 7 - 0
Object/RedisObject.py

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