|
@@ -16,7 +16,8 @@ from django.db import connection, connections, transaction
|
|
|
from django.db.models import Q, Sum, Count
|
|
|
from django.views import View
|
|
|
|
|
|
-from Ansjer.config import USED_SERIAL_REDIS_LIST, UNUSED_SERIAL_REDIS_LIST, CONFIG_INFO, CONFIG_US
|
|
|
+from Ansjer.config import USED_SERIAL_REDIS_LIST, UNUSED_SERIAL_REDIS_LIST, CONFIG_INFO, CONFIG_US, \
|
|
|
+ RESET_REGION_ID_SERIAL_REDIS_LIST
|
|
|
from Model.models import Device_User, Device_Info, UidSetModel, UID_Bucket, Unused_Uid_Meal, Order_Model, StsCrdModel, \
|
|
|
VodHlsModel, ExperienceContextModel, AiService, VodHlsSummary, VideoPlaybackTimeModel, DeviceUserSummary, \
|
|
|
CountryModel, DeviceTypeModel, OrdersSummary, DeviceInfoSummary, CompanySerialModel, \
|
|
@@ -327,18 +328,27 @@ class CronUpdateDataView(View):
|
|
|
def reqUpdateSerialStatus(cls, response):
|
|
|
redis_obj = RedisObject()
|
|
|
logger = logging.getLogger('info')
|
|
|
+
|
|
|
# 更新已使用序列号其他服务器的状态
|
|
|
used_serial_redis_list = redis_obj.lrange(USED_SERIAL_REDIS_LIST, 0, -1) # 读取redis已使用序列号
|
|
|
logger.info('---请求更新序列号接口---used_serial_redis_list:{}---status:{}'.format(used_serial_redis_list, 3))
|
|
|
if used_serial_redis_list:
|
|
|
used_serial_redis_list = [str(i, 'utf-8') for i in used_serial_redis_list]
|
|
|
cls.do_request_function(used_serial_redis_list, 3)
|
|
|
+
|
|
|
# 更新未使用序列号其他服务器的状态
|
|
|
unused_serial_redis_list = redis_obj.lrange(UNUSED_SERIAL_REDIS_LIST, 0, -1) # 读取redis未使用序列号
|
|
|
logger.info('---请求更新序列号接口---unused_serial_redis_list:{}---status:{}'.format(unused_serial_redis_list, 1))
|
|
|
if unused_serial_redis_list:
|
|
|
unused_serial_redis_list = [str(i, 'utf-8') for i in unused_serial_redis_list]
|
|
|
cls.do_request_function(unused_serial_redis_list, 1)
|
|
|
+
|
|
|
+ # 重置地区id
|
|
|
+ reset_region_id_serial_redis_list = redis_obj.lrange(RESET_REGION_ID_SERIAL_REDIS_LIST, 0, -1) # 读取redis未使用序列号
|
|
|
+ logger.info('---请求重置地区id的序列号列表---:{}'.format(reset_region_id_serial_redis_list))
|
|
|
+ if reset_region_id_serial_redis_list:
|
|
|
+ reset_region_id_serial_redis_list = [str(i, 'utf-8') for i in reset_region_id_serial_redis_list]
|
|
|
+ cls.do_request_reset_region_id(reset_region_id_serial_redis_list)
|
|
|
return response.json(0)
|
|
|
|
|
|
@staticmethod
|
|
@@ -395,6 +405,31 @@ class CronUpdateDataView(View):
|
|
|
except Exception as e:
|
|
|
logger.info('---更新序列号状态异常---:{}'.format(repr(e)))
|
|
|
|
|
|
+ @staticmethod
|
|
|
+ def do_request_reset_region_id(reset_region_id_serial_redis_list):
|
|
|
+ """
|
|
|
+ 请求重置地区id
|
|
|
+ @param reset_region_id_serial_redis_list: 序列号redis列表
|
|
|
+ """
|
|
|
+ redis_obj = RedisObject()
|
|
|
+ logger = logging.getLogger('info')
|
|
|
+ requests_failed_flag = False # 请求失败标志位
|
|
|
+ data = {
|
|
|
+ 'serial_redis_list': str(reset_region_id_serial_redis_list),
|
|
|
+ }
|
|
|
+ url = 'https://www.dvema.com/cron/update/reset-region-id'
|
|
|
+
|
|
|
+ try:
|
|
|
+ response = requests.post(url=url, data=data, timeout=5)
|
|
|
+ result = response.json()
|
|
|
+ if result['result_code'] != 0: # 请求失败标志位置位
|
|
|
+ requests_failed_flag = True
|
|
|
+ if not requests_failed_flag: # 请求成功删除redis序列号
|
|
|
+ for serial in reset_region_id_serial_redis_list:
|
|
|
+ redis_obj.lrem(RESET_REGION_ID_SERIAL_REDIS_LIST, 0, serial)
|
|
|
+ except Exception as e:
|
|
|
+ logger.info('---请求重置地区id异常---:{}'.format(repr(e)))
|
|
|
+
|
|
|
@staticmethod
|
|
|
def updateSerialStatus(request_dict, response):
|
|
|
"""
|