2025-07-15 10:35:00 +00:00
|
|
|
|
# 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
|
2025-07-16 08:22:50 +00:00
|
|
|
|
from common.job.scheduler import scheduler
|
2025-07-15 10:35:00 +00:00
|
|
|
|
from common.utils.lock import try_lock, un_lock, lock
|
|
|
|
|
|
from common.utils.logger import maxkb_logger
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def client_access_num_reset_job():
|
|
|
|
|
|
client_access_num_reset_job_lock()
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-07-16 02:15:45 +00:00
|
|
|
|
@lock(lock_key="access_num_reset_execute", timeout=30)
|
2025-07-15 10:35:00 +00:00
|
|
|
|
def client_access_num_reset_job_lock():
|
|
|
|
|
|
from django.utils.translation import gettext_lazy as _
|
2025-07-16 06:10:11 +00:00
|
|
|
|
maxkb_logger.debug(_('start reset access_num'))
|
2025-07-15 10:35:00 +00:00
|
|
|
|
QuerySet(ApplicationChatUserStats).update(intraday_access_num=0)
|
2025-07-16 06:10:11 +00:00
|
|
|
|
maxkb_logger.debug(_('end reset access_num'))
|
2025-07-15 10:35:00 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def run():
|
2025-07-16 02:15:45 +00:00
|
|
|
|
if try_lock('access_num_reset', 30 * 30):
|
2025-07-15 10:35:00 +00:00
|
|
|
|
try:
|
2025-07-17 01:55:21 +00:00
|
|
|
|
maxkb_logger.debug('get lock access_num_reset')
|
2025-07-16 08:22:50 +00:00
|
|
|
|
|
2025-07-15 10:35:00 +00:00
|
|
|
|
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')
|