|
@@ -97,6 +97,14 @@ class SerialNumberView(View):
|
|
|
:param user_id: 用户id
|
|
|
:return:
|
|
|
"""
|
|
|
+ redis_obj = RedisObject()
|
|
|
+ # redis加锁,防止同时进行其他操作
|
|
|
+ redis_key = 'serial_generate_lock'
|
|
|
+ serial_operate_lock = redis_obj.CONN.setnx(redis_key, 1)
|
|
|
+ if not serial_operate_lock:
|
|
|
+ return response.json(5)
|
|
|
+ redis_obj.CONN.expire(redis_key, 60*5)
|
|
|
+
|
|
|
id = request_dict.get('id', None)
|
|
|
quantity = request_dict.get('quantity', None)
|
|
|
|
|
@@ -197,9 +205,11 @@ class SerialNumberView(View):
|
|
|
fail_reason = '欧洲服务器生成序列号发生异常'
|
|
|
return self.failResponse(company.name, quantity, fail_reason, Log, response)
|
|
|
|
|
|
+ redis_obj.del_data(key=redis_key) # redis解锁
|
|
|
return response.json(0)
|
|
|
|
|
|
except Exception as e:
|
|
|
+ redis_obj.del_data(key=redis_key) # redis解锁
|
|
|
djangoLogger = logging.getLogger('django')
|
|
|
djangoLogger.info(repr(e))
|
|
|
return response.json(500)
|
|
@@ -219,6 +229,14 @@ class SerialNumberView(View):
|
|
|
:param user_id: 用户id
|
|
|
:return:
|
|
|
"""
|
|
|
+ redis_obj = RedisObject()
|
|
|
+ # redis加锁,防止同时进行其他操作
|
|
|
+ redis_key = 'serial_generate_lock'
|
|
|
+ serial_operate_lock = redis_obj.CONN.setnx(redis_key, 1)
|
|
|
+ if not serial_operate_lock:
|
|
|
+ return response.json(5)
|
|
|
+ redis_obj.CONN.expire(redis_key, 60*5)
|
|
|
+
|
|
|
quantity = int(request_dict.get('quantity', 0))
|
|
|
|
|
|
if not quantity:
|
|
@@ -300,9 +318,11 @@ class SerialNumberView(View):
|
|
|
fail_reason = '欧洲服务器生成序列号发生异常'
|
|
|
return self.generateFail(quantity, fail_reason, Log, response)
|
|
|
|
|
|
+ redis_obj.del_data(key=redis_key) # redis解锁
|
|
|
return response.json(0)
|
|
|
|
|
|
except Exception as e:
|
|
|
+ redis_obj.del_data(key=redis_key) # redis解锁
|
|
|
djangoLogger = logging.getLogger('django')
|
|
|
djangoLogger.info(repr(e))
|
|
|
return response.json(500)
|