Browse Source

异步请求Alexa服务器更新事件网关

locky 1 year ago
parent
commit
4cc6e659e5
2 changed files with 23 additions and 4 deletions
  1. 5 3
      Controller/EquipmentManagerV3.py
  2. 18 1
      Service/CommonService.py

+ 5 - 3
Controller/EquipmentManagerV3.py

@@ -350,11 +350,13 @@ class EquipmentManagerV3(View):
                     else:
                         data_list = [{'userID': userID, 'UID': UID, 'uid_nick': NickName, 'password': encrypt_pass}]
 
-                    # 请求Alexa服务器更新事件网关
+                    # 异步请求Alexa服务器更新事件网关
                     data_list = json.dumps(data_list)
                     data = {'data_list': data_list}
-                    url = 'https://www.zositech.xyz/deviceStatus/addOrUpdateV2'
-                    requests.post(url, data=data, timeout=2)
+                    alexa_thread = threading.Thread(
+                        target=CommonService.update_alexa_events,
+                        kwargs=data)
+                    alexa_thread.start()
 
                 # 记录添加日志
                 LogModel.objects.create(**log)

+ 18 - 1
Service/CommonService.py

@@ -19,10 +19,11 @@ from django.utils.crypto import constant_time_compare
 from pyipip import IPIPDatabase
 
 from Ansjer.config import BASE_DIR, SERVER_DOMAIN_SSL, CONFIG_INFO, CONFIG_TEST, CONFIG_CN, SERVER_DOMAIN_TEST, \
-    SERVER_DOMAIN_CN, SERVER_DOMAIN_US, CONFIG_US, CONFIG_EUR, SERVER_DOMAIN_LIST, SERVER_DOMAIN_EUR
+    SERVER_DOMAIN_CN, SERVER_DOMAIN_US, CONFIG_US, CONFIG_EUR, SERVER_DOMAIN_LIST, SERVER_DOMAIN_EUR, ALEXA_DOMAIN
 from Controller.CheckUserData import RandomStr
 from Model.models import iotdeviceInfoModel, Device_Info, UIDModel, AppDeviceType, UIDCompanySerialModel, GatewayPush, \
     Device_User
+from Object.AWS.S3Email import S3Email
 from Object.ResponseObject import ResponseObject
 from Object.TokenObject import TokenObject
 
@@ -892,3 +893,19 @@ GCqvlyw5dfxNA+EtxNE2wCW/LW7ENJlACgcfgPlBZtpLheWoZB/maw4=
             # 截掉.00然后转为浮点型
             tz = float(gateway_push_qs.tz[:-3])
         return tz
+
+    @staticmethod
+    def update_alexa_events(data):
+        """
+        请求Alexa服务器更新事件网关
+        邮件提醒捕获的异常
+        @param data: 请求参数
+        @return:
+        """
+        try:
+            url = ALEXA_DOMAIN + 'deviceStatus/addOrUpdateV2'
+            requests.post(url, data=data, timeout=30)
+        except Exception as e:
+            S3Email().faEmail(
+                '请求Alexa服务器更新事件网关异常:error_line:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)),
+                'servers@ansjer.com')