fix: 修复清除日志报错的缺陷

--bug=1049704 --user=王孝刚 【应用】日志清除策略没生效 https://www.tapd.cn/57709429/s/1620515
This commit is contained in:
wxg0103 2024-11-28 17:52:11 +08:00 committed by wxg
parent b43f03152c
commit f0fecf455f

View File

@ -4,6 +4,7 @@ import logging
import datetime import datetime
from django.db import transaction from django.db import transaction
from django.db.models.fields.json import KeyTextTransform
from django.utils import timezone from django.utils import timezone
from apscheduler.schedulers.background import BackgroundScheduler from apscheduler.schedulers.background import BackgroundScheduler
from django_apscheduler.jobstores import DjangoJobStore from django_apscheduler.jobstores import DjangoJobStore
@ -11,6 +12,8 @@ from application.models import Application, Chat
from django.db.models import Q from django.db.models import Q
from common.lock.impl.file_lock import FileLock from common.lock.impl.file_lock import FileLock
from dataset.models import File from dataset.models import File
from django.db.models.functions import Cast
from django.db import models
scheduler = BackgroundScheduler() scheduler = BackgroundScheduler()
scheduler.add_jobstore(DjangoJobStore(), "default") scheduler.add_jobstore(DjangoJobStore(), "default")
@ -40,7 +43,7 @@ def clean_chat_log_job():
break break
deleted_count, _ = Chat.objects.filter(id__in=logs_to_delete).delete() deleted_count, _ = Chat.objects.filter(id__in=logs_to_delete).delete()
# 删除对应的文件 # 删除对应的文件
File.objects.filter(~Q(meta__chat_id__in=logs_to_delete)).delete() File.objects.filter(meta__chat_id__in=[str(uuid) for uuid in logs_to_delete]).delete()
if deleted_count < batch_size: if deleted_count < batch_size:
break break