mirror of
https://github.com/1Panel-dev/MaxKB.git
synced 2025-12-28 23:32:48 +00:00
feat: Access num reset job (#3614)
This commit is contained in:
parent
5c1f105cab
commit
df9245a5a4
|
|
@ -6,12 +6,13 @@
|
|||
@date:2024/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()
|
||||
|
|
|
|||
|
|
@ -0,0 +1,45 @@
|
|||
# coding=utf-8
|
||||
"""
|
||||
@project: maxkb
|
||||
@Author:虎
|
||||
@file: client_access_num_job.py
|
||||
@date:2024/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')
|
||||
Loading…
Reference in New Issue