浏览代码

更新设备影子异步请求更新国内和欧洲数据

locky 2 年之前
父节点
当前提交
316b4271f4
共有 2 个文件被更改,包括 16 次插入33 次删除
  1. 16 32
      Controller/ShadowController.py
  2. 0 1
      Controller/gatewayController.py

+ 16 - 32
Controller/ShadowController.py

@@ -1,28 +1,9 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-"""
-@Copyright (C) ansjer cop Video Technology Co.,Ltd.All rights reserved.
-@AUTHOR: ASJRD018
-@NAME: AnsjerPush
-@software: PyCharm
-@DATE: 2020/2/14 13:54
-@Version: python3.6
-@MODIFY DECORD:ansjer dev
-@file: ShadowController.py
-@Contact: chanjunkai@163.com
-"""
-# 测试环境
-# test.shadow.dvema.com
-# 生产环境
-# shadow.dvema.com
-# 设备影子更新
 import logging
+import threading
 import time
-
 import requests
 from django.http import JsonResponse
 from ratelimit.decorators import ratelimit
-
 from AnsjerPush.config import SERVER_TYPE
 from Model.models import Device_Info, UidSetModel, UID_Preview, VoicePromptModel, UID_Bucket, UidChannelSetModel, \
     AiService, CountryModel
@@ -45,9 +26,6 @@ def generate_utk(request):
     uid = request_dict.get('uid', None)
     if username and password:
         if username == 'debug_user' and password == 'debug_password':
-            # utko = UidTokenObject()
-            # # right
-            # utko.generate(data={'uid': uid})
             etkObj = ETkObject(etk='')
             etk = etkObj.encrypt(uid)
             return response.json(0, {'etk': etk})
@@ -57,7 +35,7 @@ def generate_utk(request):
         return response.json(444, 'username password')
 
 
-# 设备影子更新
+# 更新设备影子
 def update_device_shadow(request):
     request.encoding = 'utf-8'
     if request.method == 'POST':
@@ -66,19 +44,22 @@ def update_device_shadow(request):
         request_dict = request.GET
     else:
         return JsonResponse(status=200, data={'code': 0, 'msg': 'success', 'data': {}})
+
     logger = logging.getLogger('info')
+    logger.info('---更新设备影子---, 使用配置:{}, 参数:{}'.format(SERVER_TYPE, request_dict.dict()))
+    if SERVER_TYPE == 'Ansjer.formal_settings':     # 如果不为美国配置,异步请求更新国内和欧洲数据
+        domain_name_list = ['push.zositechc.cn']    # 后面加上欧洲域名
+        for domain_name in domain_name_list:
+            url = 'http://{}/deviceShadow/update'.format(domain_name)
+            request_thread = threading.Thread(target=do_request_thread, args=(url, request_dict.dict()))
+            request_thread.start()
+
     try:
         etk = request_dict.get('etk', None)
         eto = ETkObject(etk)
         uid = eto.uid
         if not uid:
             return JsonResponse(status=200, data={'code': 0, 'msg': 'success', 'data': {}})
-        logger.info('使用配置: {}'.format(SERVER_TYPE))
-        logger.info('data: {}'.format(request_dict.dict()))
-
-        if SERVER_TYPE != 'Ansjer.test_settings':
-            if SERVER_TYPE != 'Ansjer.cn_formal_settings':  # 同步更新国内数据
-                requests.post(url='http://shadow.zositechc.cn/deviceShadow/update', data=request_dict.dict(), timeout=2)
 
         nowTime = int(time.time())
 
@@ -116,8 +97,8 @@ def update_device_shadow(request):
 
             # 关闭AI
             AiService.objects.filter(uid=uid, use_status=1).update(detect_status=0, detect_group='')
-
             logger.info('{}重置成功'.format(uid))
+
         ucode = request_dict.get('ucode', None)
         version = request_dict.get('version', None)
         p2p_region = request_dict.get('p2p_region', None)
@@ -197,6 +178,9 @@ def update_device_shadow(request):
         logger.info('***设备影子保存成功{}'.format(uid))
         return JsonResponse(status=200, data={'code': 0, 'msg': 'success', 'data': {}})
     except Exception as e:
-        print('异步保存设备影子信息报错,errLine:{}, errMsg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
         logger.info('更新设备影子异常: {}'.format(repr(e)))
         return JsonResponse(status=200, data={'code': 0, 'update_shadow_error': repr(e)})
+
+
+def do_request_thread(url, data):
+    requests.post(url=url, data=data, timeout=2)

+ 0 - 1
Controller/gatewayController.py

@@ -167,7 +167,6 @@ class GatewayView(View):
                     try:
                         # 推送消息
                         if push_type == 0:  # ios apns
-                            kwargs['launch_image'] = 'https://d2cjxvw3tr9apc.cloudfront.net/app/push_images/智能按钮.228.png'
                             GatewayPushService.ios_apns_push(**kwargs)
                         elif push_type == 1:  # android gcm
                             GatewayPushService.android_fcm_push(**kwargs)