Merge remote-tracking branch 'origin/v2' into v2

This commit is contained in:
liqiang-fit2cloud 2025-07-16 16:24:50 +08:00
commit caf89e39a7
4 changed files with 25 additions and 23 deletions

View File

@ -2,20 +2,16 @@
import datetime
from apscheduler.schedulers.background import BackgroundScheduler
from django.db import transaction
from django.db.models import Q, Max
from django.utils import timezone
from django_apscheduler.jobstores import DjangoJobStore
from application.models import Application, Chat, ChatRecord
from common.job.scheduler import scheduler
from common.utils.lock import try_lock, un_lock, lock
from common.utils.logger import maxkb_logger
from knowledge.models import File
scheduler = BackgroundScheduler()
scheduler.add_jobstore(DjangoJobStore(), "default")
def clean_chat_log_job():
clean_chat_log_job_lock()
@ -76,7 +72,8 @@ def clean_chat_log_job_lock():
def run():
if try_lock('clean_chat_log_job', 30 * 30):
try:
scheduler.start()
maxkb_logger.info('get lock clean_chat_log_job')
existing_job = scheduler.get_job(job_id='clean_chat_log')
if existing_job is not None:
existing_job.remove()

View File

@ -1,19 +1,14 @@
# coding=utf-8
import time
from datetime import timedelta
from apscheduler.schedulers.background import BackgroundScheduler
from django.db.models import Q
from django.utils import timezone
from django_apscheduler.jobstores import DjangoJobStore
from common.job.scheduler import scheduler
from common.utils.lock import un_lock, try_lock, lock
from common.utils.logger import maxkb_logger
from knowledge.models import File, FileSourceType
scheduler = BackgroundScheduler()
scheduler.add_jobstore(DjangoJobStore(), "default")
def clean_debug_file():
clean_debug_file_lock()
@ -22,7 +17,7 @@ def clean_debug_file():
@lock(lock_key='clean_debug_file_execute', timeout=30)
def clean_debug_file_lock():
from django.utils.translation import gettext_lazy as _
maxkb_logger.debug(_('start clean debug file'))
maxkb_logger.info(_('start clean debug file'))
minutes_30_ago = timezone.now() - timedelta(minutes=30)
two_hours_ago = timezone.now() - timedelta(hours=2)
one_days_ago = timezone.now() - timedelta(hours=24)
@ -31,17 +26,18 @@ def clean_debug_file_lock():
Q(create_time__lt=one_days_ago, source_type=FileSourceType.TEMPORARY_1_DAY.value) |
Q(create_time__lt=two_hours_ago, source_type=FileSourceType.TEMPORARY_120_MINUTE.value) |
Q(create_time__lt=minutes_30_ago, source_type=FileSourceType.TEMPORARY_30_MINUTE.value)).delete()
maxkb_logger.debug(_('end clean debug file'))
time.sleep(2)
maxkb_logger.info(_('end clean debug file'))
# time.sleep(2)
def run():
if try_lock('clean_debug_file', 30 * 30):
try:
scheduler.start()
maxkb_logger.info('get lock clean_debug_file')
clean_debug_file_job = scheduler.get_job(job_id='clean_debug_file')
if clean_debug_file_job is not None:
clean_debug_file_job.remove()
scheduler.add_job(clean_debug_file, 'cron', hour='*', minute='*/30', second='0', id='clean_debug_file')
scheduler.add_job(clean_debug_file, 'cron', hour='*', minute='*/1', second='0', id='clean_debug_file')
finally:
un_lock('clean_debug_file')

View File

@ -7,17 +7,13 @@
@desc:
"""
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.job.scheduler import scheduler
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()
@ -34,7 +30,8 @@ def client_access_num_reset_job_lock():
def run():
if try_lock('access_num_reset', 30 * 30):
try:
scheduler.start()
maxkb_logger.info('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()

View File

@ -0,0 +1,12 @@
from apscheduler.schedulers.background import BackgroundScheduler
from django_apscheduler.jobstores import DjangoJobStore
scheduler = BackgroundScheduler()
scheduler.add_jobstore(DjangoJobStore(), "default")
try:
scheduler.start()
except Exception as e:
from common.utils.logger import maxkb_logger
maxkb_logger.error(f"Failed to start scheduler: {e}")