mirror of
https://github.com/1Panel-dev/MaxKB.git
synced 2025-12-27 12:12:57 +00:00
43 lines
1.3 KiB
Python
43 lines
1.3 KiB
Python
# coding=utf-8
|
||
"""
|
||
@project: maxkb
|
||
@Author:虎
|
||
@file: client_access_num_job.py
|
||
@date:2024/3/14 11:56
|
||
@desc:
|
||
"""
|
||
|
||
from django.db.models import QuerySet
|
||
|
||
from application.models import ApplicationChatUserStats
|
||
from common.job.scheduler import scheduler
|
||
from common.utils.lock import lock, RedisLock
|
||
from common.utils.logger import maxkb_logger
|
||
|
||
|
||
def client_access_num_reset_job():
|
||
client_access_num_reset_job_lock()
|
||
|
||
|
||
@lock(lock_key="access_num_reset_execute", 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():
|
||
rlock = RedisLock()
|
||
if rlock.try_lock('access_num_reset', 30 * 30):
|
||
try:
|
||
maxkb_logger.debug('get lock access_num_reset')
|
||
|
||
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:
|
||
rlock.un_lock('access_num_reset')
|