feat: Access num reset job (#3614)

This commit is contained in:
shaohuzhang1 2025-07-15 18:35:00 +08:00 committed by GitHub
parent 5c1f105cab
commit df9245a5a4
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 48 additions and 2 deletions

View File

@ -6,12 +6,13 @@
@date2024/3/14 11:54
@desc:
"""
#from .client_access_num_job import *
from .clean_chat_job import *
from .clean_debug_file_job import *
from .client_access_num_job import *
def run():
#client_access_num_job.run()
# client_access_num_job.run()
clean_chat_job.run()
clean_debug_file_job.run()
client_access_num_job.run()

View File

@ -0,0 +1,45 @@
# coding=utf-8
"""
@project: maxkb
@Author
@file client_access_num_job.py
@date2024/3/14 11:56
@desc:
"""
import logging
from apscheduler.schedulers.background import BackgroundScheduler
from django.db.models import QuerySet
from django_apscheduler.jobstores import DjangoJobStore
from application.models import ApplicationChatUserStats
from common.utils.lock import try_lock, un_lock, lock
from common.utils.logger import maxkb_logger
scheduler = BackgroundScheduler()
scheduler.add_jobstore(DjangoJobStore(), "default")
def client_access_num_reset_job():
client_access_num_reset_job_lock()
@lock(lock_key="access_num_reset", timeout=30)
def client_access_num_reset_job_lock():
from django.utils.translation import gettext_lazy as _
maxkb_logger.info(_('start reset access_num'))
QuerySet(ApplicationChatUserStats).update(intraday_access_num=0)
maxkb_logger.info(_('end reset access_num'))
def run():
if try_lock('access_num_reset', 30):
try:
scheduler.start()
access_num_reset = scheduler.get_job(job_id='access_num_reset')
if access_num_reset is not None:
access_num_reset.remove()
scheduler.add_job(client_access_num_reset_job, 'cron', hour='0', minute='0', second='0',
id='access_num_reset')
finally:
un_lock('access_num_reset')