| 1234567891011121314151617181920212223242526272829303132333435363738394041 |
- # coding=utf-8
- """
- @project: maxkb
- @Author:虎
- @file: __init__.py
- @date:2023/11/10 10:43
- @desc:
- """
- from django.core.cache import cache
- from django.db.models import QuerySet
- from django.utils.translation import gettext as _
- from ..constants.cache_version import Cache_Version
- from ..db.sql_execute import update_execute
- from ..utils.lock import RedisLock
- 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():
- from models_provider.models import Model, Status
- rlock = RedisLock()
- if rlock.try_lock('event_init', 30 * 30):
- try:
- # 修改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, [])
- version, get_key = Cache_Version.SYSTEM.value
- cache.delete(get_key(key='rsa_key'), version=version)
- finally:
- rlock.un_lock('event_init')
|