Преглед изворни кода

优化PC删除设备使用异步推送消息

zhangdongming пре 1 година
родитељ
комит
d968406cbf
1 измењених фајлова са 15 додато и 4 уклоњено
  1. 15 4
      Controller/EquipmentManagerV3.py

+ 15 - 4
Controller/EquipmentManagerV3.py

@@ -1117,10 +1117,11 @@ class EquipmentManagerV3(View):
 
             with transaction.atomic():
                 Device_Info.objects.filter(UID=uid).delete()
-                # 删除推送消息
-                for val in range(1, 8):
-                    EquipmentInfoService.get_equipment_info_model('', val).filter(device_uid=uid).delete()
-            return response.json(0)
+                UidPushModel.objects.filter(uid_set__uid=uid).delete()
+                LOGGER.info(f'PC删除设备&删除APP推送token{uid}成功')
+                asy = threading.Thread(target=EquipmentManagerV3.async_del_message, args=(uid,))
+                asy.start()
+            return response.json(0, {'msg': 'Delete the device and delete the push token successfully'})
         except Exception as e:
             return response.json(500, 'error_line:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
 
@@ -1142,3 +1143,13 @@ class EquipmentManagerV3(View):
 
         else:
             return response.json(444)
+
+    @classmethod
+    def async_del_message(cls, uid):
+        try:
+            # 异步删除推送消息
+            for val in range(1, 8):
+                EquipmentInfoService.get_equipment_info_model('', val).filter(device_uid=uid).delete()
+        except Exception as e:
+            LOGGER.info('EquipmentManagerV3.async_del_message,{},error_line:{}, error_msg:{}'
+                        .format(uid, e.__traceback__.tb_lineno, repr(e)))