From 967f116c722422507dd478263e2e95d5ce80a176 Mon Sep 17 00:00:00 2001 From: zty Date: Mon, 29 Jul 2024 16:46:44 +0800 Subject: [PATCH] =?UTF-8?q?fix=20exam=20=E8=80=83=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/apps/exam/views.py | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/server/apps/exam/views.py b/server/apps/exam/views.py index a45cd9a..d3efa0b 100644 --- a/server/apps/exam/views.py +++ b/server/apps/exam/views.py @@ -54,6 +54,18 @@ def dectry(p): dec_str = dec_str+temp return dec_str +def acquire_lock(lock_name, timeout=60): + identifier = str(uuid.uuid4()) + lock = cache.set(lock_name, identifier, timeout=timeout) + print(lock, identifier) + return identifier if lock else None + +def release_lock(lock_name, identifier): + if cache.get(lock_name) == identifier: + cache.delete(lock_name) + return True + else: + raise ParseError('Lock identifier does not match') class QuestioncatViewSet(CreateUpdateCustomMixin, ModelViewSet): perms_map = {'get': '*', 'post':'question', 'put':'question', 'delete':'question'} @@ -691,7 +703,7 @@ class ExamRecordViewSet(ListModelMixin, DestroyModelMixin, RetrieveModelMixin, G # 获取锁 iden = acquire_lock('certificate') if iden is None: - raise ParseError("系统忙, 请稍后再试") + raise ParseError("系统忙, 请稍后再试........") try: # 查询证明编号创建时间为最后一个 cer = Certificate.objects.latest('证书编号') @@ -728,15 +740,3 @@ class ExamRecordViewSet(ListModelMixin, DestroyModelMixin, RetrieveModelMixin, G return Response(ExamRecordListSerializer(instance=er).data) -def acquire_lock(lock_name, timeout=60): - identifier = str(uuid.uuid4()) - lock = cache.set(lock_name, identifier, timeout=timeout) - print(lock, identifier) - return identifier if lock else None - -def release_lock(lock_name, identifier): - if cache.get(lock_name) == identifier: - cache.delete(lock_name) - return True - else: - raise ParseError('Lock identifier does not match') \ No newline at end of file