|
@@ -17,11 +17,12 @@
|
|
|
# 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
|
|
@@ -57,7 +58,6 @@ def generate_utk(request):
|
|
|
|
|
|
|
|
|
# 设备影子更新
|
|
|
-@ratelimit(key='ip', rate='1/1d', block=True)
|
|
|
def update_device_shadow(request):
|
|
|
request.encoding = 'utf-8'
|
|
|
response = ResponseObject()
|
|
@@ -69,11 +69,23 @@ def update_device_shadow(request):
|
|
|
return response.json(444)
|
|
|
logger = logging.getLogger('info')
|
|
|
try:
|
|
|
+ asy = threading.Thread(target=async_device_shadow,
|
|
|
+ args=(request_dict, request))
|
|
|
+ asy.start()
|
|
|
+ return JsonResponse(status=200, data={'code': 0, 'msg': 'success', 'data': {}})
|
|
|
+ except Exception as e:
|
|
|
+ logger.info('更新设备影子异常: {}'.format(repr(e)))
|
|
|
+ return JsonResponse(status=200, data={'code': 0, 'update_shadow_error': repr(e)})
|
|
|
+
|
|
|
+
|
|
|
+def async_device_shadow(request_dict, request):
|
|
|
+ try:
|
|
|
+ logger = logging.getLogger('info')
|
|
|
etk = request_dict.get('etk', None)
|
|
|
eto = ETkObject(etk)
|
|
|
uid = eto.uid
|
|
|
if not uid:
|
|
|
- return JsonResponse(status=200, data={'code': 403, 'msg': 'error etk'})
|
|
|
+ return False
|
|
|
logger.info('使用配置: {}'.format(SERVER_TYPE))
|
|
|
logger.info('data: {}'.format(request_dict.dict()))
|
|
|
|
|
@@ -119,8 +131,6 @@ def update_device_shadow(request):
|
|
|
AiService.objects.filter(uid=uid, use_status=1).update(detect_status=0, detect_group='')
|
|
|
|
|
|
logger.info('{}重置成功'.format(uid))
|
|
|
-
|
|
|
- # return JsonResponse(status=200, data={'code': 0, 'msg': 'success', 'data': {}})
|
|
|
ucode = request_dict.get('ucode', None)
|
|
|
version = request_dict.get('version', None)
|
|
|
p2p_region = request_dict.get('p2p_region', None)
|
|
@@ -131,7 +141,6 @@ def update_device_shadow(request):
|
|
|
cloud_vod = request_dict.get('cloud_vod', None)
|
|
|
push_status = request_dict.get('push_status', None)
|
|
|
pwd = request_dict.get('pwd', None)
|
|
|
- resetTime = request_dict.get('resetTime', None)
|
|
|
is_alexa = request_dict.get('is_alexa', None)
|
|
|
is_human = request_dict.get('is_human', None)
|
|
|
is_custom_voice = request_dict.get('is_custom', None)
|
|
@@ -183,8 +192,6 @@ def update_device_shadow(request):
|
|
|
if is_alexa and us_qs[0].is_alexa == 0:
|
|
|
qs_dict['is_alexa'] = is_alexa
|
|
|
us_qs.update(**qs_dict)
|
|
|
- # 如果推送状态开启,返回推送url
|
|
|
- return JsonResponse(status=200, data={'code': 0, 'msg': 'success', 'data': {}})
|
|
|
# 新增
|
|
|
else:
|
|
|
if is_alexa:
|
|
@@ -192,8 +199,7 @@ def update_device_shadow(request):
|
|
|
qs_dict['uid'] = uid
|
|
|
qs_dict['addTime'] = nowTime
|
|
|
UidSetModel.objects.create(**qs_dict)
|
|
|
- # 如果推送状态开启,返回推送url
|
|
|
- return JsonResponse(status=200, data={'code': 0, 'msg': 'success', 'data': {}})
|
|
|
+ logger.info('***设备影子保存成功{}'.format(uid))
|
|
|
except Exception as e:
|
|
|
- logger.info('更新设备影子异常: {}'.format(repr(e)))
|
|
|
- return JsonResponse(status=500, data={'update_shadow_error': repr(e)})
|
|
|
+ print(repr(e))
|
|
|
+ print('异步保存设备影子信息报错,errLine:{}, errMsg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
|