From 0ad38e25404c7961edd7a311f9562f153a613246 Mon Sep 17 00:00:00 2001 From: CaptainB Date: Wed, 2 Jul 2025 11:44:33 +0800 Subject: [PATCH] refactor: improve document status update logic and enhance post handler functionality --- apps/common/event/__init__.py | 23 +++++++++++++++-------- apps/maxkb/wsgi.py | 13 +++++++++++++ 2 files changed, 28 insertions(+), 8 deletions(-) diff --git a/apps/common/event/__init__.py b/apps/common/event/__init__.py index c23c4537a..d6b164524 100644 --- a/apps/common/event/__init__.py +++ b/apps/common/event/__init__.py @@ -6,25 +6,32 @@ @date:2023/11/10 10:43 @desc: """ -from models_provider.models import Model, Status -from .listener_manage import * from django.utils.translation import gettext as _ -from ..db.sql_execute import update_execute from common.lock.impl.file_lock import FileLock +from .listener_manage import * +from ..db.sql_execute import update_execute lock = FileLock() update_document_status_sql = """ -UPDATE "public"."document" -SET status ="replace"("replace"("replace"(status, '1', '3'), '0', '3'), '4', '3') -WHERE status ~ '1|0|4' -""" + UPDATE "public"."document" + SET status ="replace"("replace"("replace"(status, '1', '3'), '0', '3'), '4', '3') + WHERE status ~ '1|0|4' \ + """ def run(): + from models_provider.models import Model, Status + if lock.try_lock('event_init', 30 * 30): try: - QuerySet(Model).filter(status=Status.DOWNLOAD).update(status=Status.ERROR, meta={'message': _( 'The download process was interrupted, please try again')}) + # 修改Model状态为ERROR + QuerySet(Model).filter( + status=Status.DOWNLOAD + ).update( + status=Status.ERROR, meta={'message': _('The download process was interrupted, please try again')} + ) + # 更新文档状态 update_execute(update_document_status_sql, []) finally: lock.un_lock('event_init') diff --git a/apps/maxkb/wsgi.py b/apps/maxkb/wsgi.py index 74479b816..dde8db615 100644 --- a/apps/maxkb/wsgi.py +++ b/apps/maxkb/wsgi.py @@ -14,3 +14,16 @@ from django.core.wsgi import get_wsgi_application os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'maxkb.settings') application = get_wsgi_application() + + + +def post_handler(): + from common.database_model_manage.database_model_manage import DatabaseModelManage + from common import job + from common import event + + event.run() + job.run() + DatabaseModelManage.init() + +post_handler()