import { PrismaClient } from '@prisma/client'; const prisma = new PrismaClient(); async function checkStuckTasks() { try { // 查找最近创建的任务 const recentTasks = await prisma.aIContentTask.findMany({ orderBy: { createdAt: 'desc' }, take: 5, select: { id: true, status: true, generationStyle: true, createdAt: true, courseId: true, suggestedTitle: true, sourceText: true, outline: true, }, }); console.log('\n=== 最近5个任务 ==='); recentTasks.forEach((task, index) => { console.log(`\n任务 ${index + 1}:`); console.log(` ID: ${task.id}`); console.log(` 状态: ${task.status}`); console.log(` 风格: ${task.generationStyle || '未选择'}`); console.log(` 创建时间: ${task.createdAt}`); console.log(` 课程ID: ${task.courseId || '无'}`); console.log(` 标题: ${task.suggestedTitle || '未生成'}`); console.log(` 文本长度: ${task.sourceText?.length || 0} 字符`); console.log(` 是否有大纲: ${task.outline ? '是' : '否'}`); }); // 查找卡住的任务(pending 或 analyzing 状态超过1分钟) const oneMinuteAgo = new Date(Date.now() - 60 * 1000); const stuckTasks = await prisma.aIContentTask.findMany({ where: { status: { in: ['pending', 'analyzing'], }, createdAt: { lt: oneMinuteAgo, }, }, select: { id: true, status: true, generationStyle: true, createdAt: true, courseId: true, }, }); if (stuckTasks.length > 0) { console.log('\n=== 卡住的任务(超过1分钟未更新)==='); stuckTasks.forEach((task) => { console.log(`\n任务 ID: ${task.id}`); console.log(` 状态: ${task.status}`); console.log(` 风格: ${task.generationStyle || '未选择'}`); console.log(` 创建时间: ${task.createdAt}`); console.log(` 课程ID: ${task.courseId || '无'}`); }); } else { console.log('\n✅ 没有发现卡住的任务'); } // 检查课程进度 if (recentTasks.length > 0) { const courseIds = recentTasks .map((t) => t.courseId) .filter((id): id is string => id !== null); if (courseIds.length > 0) { const courses = await prisma.course.findMany({ where: { id: { in: courseIds } }, select: { id: true, title: true, generationProgress: true, generationStatus: true, }, }); console.log('\n=== 关联的课程进度 ==='); courses.forEach((course) => { console.log(`\n课程 ID: ${course.id}`); console.log(` 标题: ${course.title}`); console.log(` 生成状态: ${course.generationStatus || '无'}`); console.log(` 生成进度: ${(course.generationProgress || 0) * 100}%`); }); } } } catch (error: any) { console.error('检查失败:', error.message); } finally { await prisma.$disconnect(); } } checkStuckTasks();