82 lines
2.3 KiB
TypeScript
82 lines
2.3 KiB
TypeScript
import prisma from '../src/utils/prisma';
|
|
import { contentQueue } from '../src/services/queueService';
|
|
|
|
async function diagnose() {
|
|
const taskId = 'a5d0ec37-3abb-4463-b86a-c87cb3366a77';
|
|
const courseId = '185f9e5e-e1c1-479b-abe6-224a29a68856';
|
|
|
|
console.log('=== 诊断任务状态 ===\n');
|
|
|
|
// 1. 检查任务状态
|
|
const task = await prisma.aIContentTask.findUnique({
|
|
where: { id: taskId },
|
|
select: {
|
|
id: true,
|
|
status: true,
|
|
generationStyle: true,
|
|
outlineEssence: true,
|
|
outlineFull: true,
|
|
errorMessage: true,
|
|
courseId: true,
|
|
createdAt: true,
|
|
updatedAt: true,
|
|
},
|
|
});
|
|
|
|
console.log('1. 任务状态:');
|
|
console.log(JSON.stringify(task, null, 2));
|
|
|
|
// 2. 检查课程状态
|
|
const course = await prisma.course.findUnique({
|
|
where: { id: courseId },
|
|
select: {
|
|
id: true,
|
|
title: true,
|
|
status: true,
|
|
generationStatus: true,
|
|
generationProgress: true,
|
|
totalNodes: true,
|
|
createdAt: true,
|
|
updatedAt: true,
|
|
},
|
|
});
|
|
|
|
console.log('\n2. 课程状态:');
|
|
console.log(JSON.stringify(course, null, 2));
|
|
|
|
// 3. 检查队列状态
|
|
if (contentQueue) {
|
|
const jobId = `content-${taskId}`;
|
|
const job = await contentQueue.getJob(jobId);
|
|
|
|
console.log('\n3. 队列任务状态:');
|
|
if (job) {
|
|
const state = await job.getState();
|
|
const progress = job.progress;
|
|
const failedReason = job.failedReason;
|
|
console.log(` Job ID: ${job.id}`);
|
|
console.log(` State: ${state}`);
|
|
console.log(` Progress: ${progress}`);
|
|
console.log(` Failed Reason: ${failedReason || 'N/A'}`);
|
|
console.log(` Data: ${JSON.stringify(job.data, null, 2)}`);
|
|
} else {
|
|
console.log(` 任务 ${jobId} 不在队列中(可能已完成、失败或被删除)`);
|
|
}
|
|
|
|
const waiting = await contentQueue.getWaitingCount();
|
|
const active = await contentQueue.getActiveCount();
|
|
const completed = await contentQueue.getCompletedCount();
|
|
const failed = await contentQueue.getFailedCount();
|
|
|
|
console.log('\n4. 内容生成队列统计:');
|
|
console.log(` 等待中: ${waiting}`);
|
|
console.log(` 进行中: ${active}`);
|
|
console.log(` 已完成: ${completed}`);
|
|
console.log(` 失败: ${failed}`);
|
|
}
|
|
|
|
await prisma.$disconnect();
|
|
}
|
|
|
|
diagnose().catch(console.error);
|