perf: 优化延迟运行

fix: 延迟执行设置超时

perf: 修改 delay run

perf: 优化 delay_run 执行

perf: 修改 delay run
This commit is contained in:
ibuler
2023-11-17 17:07:24 +08:00
committed by Eric_Lee
parent 452b383278
commit 07e1918fa1
3 changed files with 34 additions and 17 deletions

View File

@@ -8,7 +8,7 @@ from django.utils.translation import gettext as _
from rest_framework import authentication, exceptions
from common.auth import signature
from common.decorators import delay_run
from common.decorators import merge_delay_run
from common.utils import get_object_or_none, get_request_ip_or_data, contains_ip
from ..models import AccessKey, PrivateToken
@@ -17,22 +17,24 @@ def date_more_than(d, seconds):
return d is None or (timezone.now() - d).seconds > seconds
@delay_run(ttl=60)
def update_token_last_used(token):
token.date_last_used = timezone.now()
token.save(update_fields=['date_last_used'])
@merge_delay_run(ttl=60)
def update_token_last_used(tokens=()):
for token in tokens:
token.date_last_used = timezone.now()
token.save(update_fields=['date_last_used'])
@delay_run(ttl=60)
def update_user_last_used(user):
user.date_api_key_last_used = timezone.now()
user.save(update_fields=['date_api_key_last_used'])
@merge_delay_run(ttl=60)
def update_user_last_used(users=()):
for user in users:
user.date_api_key_last_used = timezone.now()
user.save(update_fields=['date_api_key_last_used'])
def after_authenticate_update_date(user, token=None):
update_user_last_used(user)
update_user_last_used(users=(user,))
if token:
update_token_last_used(token)
update_token_last_used(tokens=(token,))
class AccessTokenAuthentication(authentication.BaseAuthentication):