|
@@ -18,7 +18,7 @@
|
|
|
# 设备影子更新
|
|
|
import logging
|
|
|
import time
|
|
|
-
|
|
|
+import threading
|
|
|
import requests
|
|
|
from django.http import JsonResponse
|
|
|
from ratelimit.decorators import ratelimit
|
|
@@ -58,7 +58,8 @@ def generate_utk(request):
|
|
|
|
|
|
|
|
|
# 设备影子更新
|
|
|
-def update_device_shadow(request):
|
|
|
+@ratelimit(key='ip', rate='1/10s', block=True)
|
|
|
+def update_device_shadow(request, aws_s3_client=None):
|
|
|
request.encoding = 'utf-8'
|
|
|
if request.method == 'POST':
|
|
|
request_dict = request.POST
|
|
@@ -75,11 +76,8 @@ def update_device_shadow(request):
|
|
|
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)
|
|
|
-
|
|
|
+ asy = threading.Thread(target=async_data_save, args=(request_dict, request))
|
|
|
+ asy.start()
|
|
|
nowTime = int(time.time())
|
|
|
|
|
|
# 重置按钮
|
|
@@ -200,3 +198,9 @@ def update_device_shadow(request):
|
|
|
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 async_data_save(request_dict, request):
|
|
|
+ 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)
|