You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
# -*- coding: utf-8 -*-
|
|
|
|
#
|
|
|
|
import datetime
|
|
|
|
from django.utils import timezone
|
|
|
|
from django.conf import settings
|
|
|
|
from celery import shared_task
|
|
|
|
|
|
|
|
from ops.celery.decorator import register_as_period_task
|
|
|
|
from .models import UserLoginLog
|
|
|
|
from .utils import write_login_log
|
|
|
|
|
|
|
|
|
|
|
|
@register_as_period_task(interval=3600*24)
|
|
|
|
@shared_task
|
|
|
|
def clean_login_log_period():
|
|
|
|
now = timezone.now()
|
|
|
|
try:
|
|
|
|
days = int(settings.LOGIN_LOG_KEEP_DAYS)
|
|
|
|
except ValueError:
|
|
|
|
days = 90
|
|
|
|
expired_day = now - datetime.timedelta(days=days)
|
|
|
|
UserLoginLog.objects.filter(datetime__lt=expired_day).delete()
|
|
|
|
|
|
|
|
|
|
|
|
@shared_task
|
|
|
|
def write_login_log_async(*args, **kwargs):
|
|
|
|
write_login_log(*args, **kwargs)
|