Просмотр исходного кода

美洲服批量保存300条数据

locky 1 год назад
Родитель
Сommit
5371c6bf47
1 измененных файлов с 24 добавлено и 14 удалено
  1. 24 14
      Service/DevicePushService.py

+ 24 - 14
Service/DevicePushService.py

@@ -18,7 +18,7 @@ import requests
 
 from AnsjerPush.Config.aiConfig import DEVICE_EVENT_TYPE, ALGORITHM_COMBO_TYPES
 from AnsjerPush.config import CONFIG_INFO, CONFIG_CN, MULTI_CHANNEL_TYPE_LIST, SYS_EVENT_TYPE_LIST, AWS_ACCESS_KEY_ID, \
-    AWS_SECRET_ACCESS_KEY, EVENT_DICT, EVENT_DICT_CN
+    AWS_SECRET_ACCESS_KEY, EVENT_DICT, EVENT_DICT_CN, CONFIG_US
 from AnsjerPush.config import XMPUSH_CONFIG, OPPOPUSH_CONFIG
 from Model.models import UidPushModel, SysMsgModel, DeviceSharePermission, DeviceChannelUserSet, \
     DeviceChannelUserPermission, UidSetModel, Device_Info
@@ -241,20 +241,30 @@ class DevicePushService:
             if save_equipment_info:
                 equipment_info_list = []
                 equipment_info_model = EQUIPMENT_INFO_DICT[equipment_info_key]
-                # 缓存数据多于100条,批量保存前100条,否则保存全部
+
+                end = 0
                 equipment_info_len = redis_obj.llen(equipment_info_key)
-                end = 99 if equipment_info_len > 100 else equipment_info_len - 1
-                equipment_info_redis_list = redis_obj.lrange(equipment_info_key, 0, end)
-                redis_obj.ltrim(equipment_info_key, end+1, -1)
-
-                for equipment_info in equipment_info_redis_list:
-                    equipment_info_data = eval(equipment_info)
-                    # 设备昵称存在表情,解码utf-8
-                    if equipment_info_data.get('device_nick_name') is not None:
-                        equipment_info_data['device_nick_name'] = equipment_info_data['device_nick_name'].\
-                            encode('UTF-8', 'ignore').decode('UTF-8')
-                    equipment_info_list.append(equipment_info_model(**equipment_info_data))
-                equipment_info_model.objects.bulk_create(equipment_info_list)
+                if CONFIG_INFO == CONFIG_US:
+                    # 美洲服批量保存300条数据
+                    if equipment_info_len >= 300:
+                        end = 299
+                else:
+                    # 缓存数据多于100条,批量保存前100条,否则保存全部
+                    equipment_info_len = redis_obj.llen(equipment_info_key)
+                    end = 99 if equipment_info_len > 100 else equipment_info_len - 1
+
+                if end != 0:
+                    equipment_info_redis_list = redis_obj.lrange(equipment_info_key, 0, end)
+                    redis_obj.ltrim(equipment_info_key, end+1, -1)
+
+                    for equipment_info in equipment_info_redis_list:
+                        equipment_info_data = eval(equipment_info)
+                        # 设备昵称存在表情,解码utf-8
+                        if equipment_info_data.get('device_nick_name') is not None:
+                            equipment_info_data['device_nick_name'] = equipment_info_data['device_nick_name'].\
+                                encode('UTF-8', 'ignore').decode('UTF-8')
+                        equipment_info_list.append(equipment_info_model(**equipment_info_data))
+                    equipment_info_model.objects.bulk_create(equipment_info_list)
 
             return True
         except Exception as e: