refactor: update cache handling in user.py to improve timeout management
This commit is contained in:
parent
8f5c68dcbc
commit
64f61a3beb
@ -669,8 +669,8 @@ class SendEmailSerializer(serializers.Serializer):
|
|||||||
raise ExceptionCodeConstants.EMAIL_IS_EXIST.value.to_app_api_exception()
|
raise ExceptionCodeConstants.EMAIL_IS_EXIST.value.to_app_api_exception()
|
||||||
code_cache_key = self.data.get('email') + ":" + self.data.get("type")
|
code_cache_key = self.data.get('email') + ":" + self.data.get("type")
|
||||||
code_cache_key_lock = code_cache_key + "_lock"
|
code_cache_key_lock = code_cache_key + "_lock"
|
||||||
ttl = cache.ttl(code_cache_key_lock)
|
ttl = cache.ttl(code_cache_key_lock, version=version)
|
||||||
if ttl is not None:
|
if ttl is not None and ttl > 0:
|
||||||
raise AppApiException(500, _("Do not send emails again within {seconds} seconds").format(
|
raise AppApiException(500, _("Do not send emails again within {seconds} seconds").format(
|
||||||
seconds=int(ttl.total_seconds())))
|
seconds=int(ttl.total_seconds())))
|
||||||
return True
|
return True
|
||||||
@ -696,7 +696,7 @@ class SendEmailSerializer(serializers.Serializer):
|
|||||||
code_cache_key = email + ":" + state
|
code_cache_key = email + ":" + state
|
||||||
code_cache_key_lock = code_cache_key + "_lock"
|
code_cache_key_lock = code_cache_key + "_lock"
|
||||||
# 设置缓存
|
# 设置缓存
|
||||||
cache.set(get_key(code_cache_key_lock), code, timeout=datetime.timedelta(minutes=1), version=version)
|
cache.set(get_key(code_cache_key_lock), code, timeout=60, version=version)
|
||||||
system_setting = QuerySet(SystemSetting).filter(type=SettingType.EMAIL.value).first()
|
system_setting = QuerySet(SystemSetting).filter(type=SettingType.EMAIL.value).first()
|
||||||
if system_setting is None:
|
if system_setting is None:
|
||||||
cache.delete(get_key(code_cache_key_lock), version=version)
|
cache.delete(get_key(code_cache_key_lock), version=version)
|
||||||
@ -721,7 +721,7 @@ class SendEmailSerializer(serializers.Serializer):
|
|||||||
except Exception as e:
|
except Exception as e:
|
||||||
cache.delete(get_key(code_cache_key_lock))
|
cache.delete(get_key(code_cache_key_lock))
|
||||||
raise AppApiException(500, f"{str(e)}" + _("Email sending failed"))
|
raise AppApiException(500, f"{str(e)}" + _("Email sending failed"))
|
||||||
cache.set(get_key(code_cache_key), code, timeout=datetime.timedelta(minutes=30), version=version)
|
cache.set(get_key(code_cache_key), code, timeout=60 * 30, version=version)
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user