Browse Source

使用redis作为uid_set缓存

zhangdongming 2 years ago
parent
commit
af14f2850c
1 changed files with 12 additions and 8 deletions
  1. 12 8
      Controller/Cron/CloudPhotoController.py

+ 12 - 8
Controller/Cron/CloudPhotoController.py

@@ -52,29 +52,31 @@ class CloudPhotoView(View):
         定时获取云存消息推送图
         """
         try:
-            redis = RedisObject()
-            uid_set_list = redis.get_data(UID_KEY)
-            if not uid_set_list:
+            redis = RedisObject().CONN
+            uid_set_cache = redis.lrange(UID_KEY, 0, -1)
+            if not uid_set_cache:
                 return response.json(0)
+            uid_set_cache = list(uid_set_cache)
             today = datetime.date.today()
-            eq_qs = EquipmentInfoService.get_equipment_info_model(str(today))
             start_time = "{} 00:00:00".format(str(today))
             # 先转换为时间数组
             timeArray = time.strptime(start_time, "%Y-%m-%d %H:%M:%S")
             # 转换为时间戳
             timeStamp = int(time.mktime(timeArray))
             now_time = int(time.time())
-            for item in uid_set_list:
+            for item in uid_set_cache:
                 try:
+                    eq_qs = EquipmentInfoService.get_equipment_info_model(str(today))
+                    item = str(item, encoding="utf-8")
                     eq_qs = eq_qs.filter(event_time__gt=timeStamp, is_st=1, device_uid=item) \
                         .values('device_uid', 'channel', 'event_time')
                     count = eq_qs.count()
                     page = int(count / 2) if count > 1 else count
+                    redis.lrem(UID_KEY, 0, item)
                     if page == 0:
-                        return response.json(0)
+                        continue
                     eq_qs = eq_qs[(page - 1) * 1:page * 1]
                     eq_vo = eq_qs[0]
-
                     s3 = AmazonS3Util(
                         aws_access_key_id=ACCESS_KEY_ID,
                         secret_access_key=SECRET_ACCESS_KEY,
@@ -90,6 +92,7 @@ class CloudPhotoView(View):
                 except Exception as e:
                     LOGGER.info('异常详情,errLine:{}, errMsg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
                     continue
+
             return response.json(0)
         except Exception as e:
             print(e)
@@ -111,7 +114,8 @@ class CloudPhotoView(View):
                 uid_set_qs = UidSetModel.objects.filter(uid=item['uid'], detect_status=1)
                 if not uid_set_qs:
                     continue
-                redis.rpush(UID_KEY, item['uid'])
+                redis.CONN.rpush(UID_KEY, item['uid'])
+            return response.json(0)
         except Exception as e:
             print(e)
             LOGGER.info('--->获取uid_set信息异常:{}'.format(traceback.format_exc()))