56 lines
1.8 KiB
Python
56 lines
1.8 KiB
Python
"""清除卡住的 AI_DIAGNOSIS 任务"""
|
|
import asyncio
|
|
from app.database import AsyncSessionLocal
|
|
from app.models import SystemTaskORM, SystemJobORM
|
|
from sqlalchemy.future import select
|
|
|
|
async def clear_stuck_task():
|
|
task_id = '82db228d-ba61-419b-920c-bbdad74f9f94'
|
|
|
|
async with AsyncSessionLocal() as db:
|
|
# 查找任务
|
|
result = await db.execute(
|
|
select(SystemTaskORM).where(SystemTaskORM.task_id == task_id)
|
|
)
|
|
task = result.scalar_one_or_none()
|
|
|
|
if not task:
|
|
print(f'❌ 任务 {task_id} 不存在')
|
|
return
|
|
|
|
print(f'📋 找到任务:')
|
|
print(f' - Task ID: {task.task_id}')
|
|
print(f' - Task Type: {task.task_type}')
|
|
print(f' - Status: {task.status}')
|
|
print(f' - Message: {task.message}')
|
|
print(f' - Created: {task.created_at}')
|
|
print(f' - Updated: {task.updated_at}')
|
|
|
|
# 更新任务状态为 FAILED
|
|
task.status = 'FAILED'
|
|
task.message = '手动清除:测试任务失败'
|
|
|
|
# 查找关联的 Job
|
|
job_result = await db.execute(
|
|
select(SystemJobORM).where(SystemJobORM.task_id == task_id)
|
|
)
|
|
jobs = job_result.scalars().all()
|
|
|
|
if jobs:
|
|
print(f'\n📦 找到 {len(jobs)} 个关联 Job:')
|
|
for job in jobs:
|
|
print(f' - Job ID: {job.job_id}')
|
|
print(f' - Job Type: {job.job_type}')
|
|
print(f' - Status: {job.status}')
|
|
|
|
# 更新 Job 状态
|
|
if job.status not in ['COMPLETED', 'FAILED']:
|
|
job.status = 'FAILED'
|
|
print(f' ✅ 已更新为 FAILED')
|
|
|
|
await db.commit()
|
|
print(f'\n✅ 任务已清除,状态更新为 FAILED')
|
|
|
|
if __name__ == '__main__':
|
|
asyncio.run(clear_stuck_task())
|