MaxKB/apps/common/job/client_access_num_job.py
CaptainB 567a7612ed
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
refactor: change log level from debug to info for chat log and access number jobs
2025-07-23 10:26:49 +08:00

43 lines
1.3 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# coding=utf-8
"""
@project: maxkb
@Author
@file client_access_num_job.py
@date2024/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')