diff --git a/apps/common/event/__init__.py b/apps/common/event/__init__.py index a76500346..ddf6dd6f9 100644 --- a/apps/common/event/__init__.py +++ b/apps/common/event/__init__.py @@ -12,15 +12,22 @@ 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 +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' """ def run(): - # QuerySet(Document).filter(status__in=[Status.embedding, Status.queue_up]).update(**{'status': Status.error}) - QuerySet(Model).filter(status=setting.models.Status.DOWNLOAD).update(status=setting.models.Status.ERROR, - meta={'message': _('The download process was interrupted, please try again')}) - update_execute(update_document_status_sql, []) + if lock.try_lock('event_init', 30 * 30): + try: + QuerySet(Model).filter(status=setting.models.Status.DOWNLOAD).update(status=setting.models.Status.ERROR, + meta={'message': _( + 'The download process was interrupted, please try again')}) + update_execute(update_document_status_sql, []) + finally: + lock.un_lock('event_init')