import { NextRequest, NextResponse } from 'next/server'; import { taskScheduler } from '../../../lib/scheduler'; export async function GET(request: NextRequest) { try { const url = new URL(request.url); const action = url.searchParams.get('action'); const taskName = url.searchParams.get('task'); switch (action) { case 'status': if (taskName) { const status = taskScheduler.getTaskStatus(taskName); return NextResponse.json({ task: taskName, running: status }); } else { const tasks = taskScheduler.listTasks(); const statuses = tasks.map(task => ({ name: task, running: taskScheduler.getTaskStatus(task) })); return NextResponse.json({ tasks: statuses }); } case 'list': const allTasks = taskScheduler.listTasks(); return NextResponse.json({ tasks: allTasks }); default: return NextResponse.json({ message: 'Task scheduler is running', availableActions: ['status', 'list'], tasks: taskScheduler.listTasks() }); } } catch (error) { console.error('Task scheduler API error:', error); return NextResponse.json( { error: 'Internal server error' }, { status: 500 } ); } } export async function POST(request: NextRequest) { try { const { action, taskName } = await request.json(); switch (action) { case 'stop': if (taskName) { taskScheduler.stopTask(taskName); return NextResponse.json({ message: `Task ${taskName} stopped` }); } else { taskScheduler.stopAll(); return NextResponse.json({ message: 'All tasks stopped' }); } case 'start': // 重新启动所有任务 taskScheduler.startAll(); return NextResponse.json({ message: 'All tasks started' }); default: return NextResponse.json( { error: 'Invalid action' }, { status: 400 } ); } } catch (error) { console.error('Task scheduler API error:', error); return NextResponse.json( { error: 'Internal server error' }, { status: 500 } ); } }