sing-ui/app/api/runs/[id]/stop/route.ts

35 lines
968 B
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import { getRun } from "@/lib/db";
import { jobManager } from "@/lib/jobs";
export const runtime = "nodejs";
export const dynamic = "force-dynamic";
export async function POST(
_request: Request,
{ params }: { params: Promise<{ id: string }> }
) {
try {
const { id } = await params;
const run = getRun(Number(id));
if (!run) {
return Response.json({ error: "run not found" }, { status: 404 });
}
if (run.status !== "running" && run.status !== "queued") {
return Response.json(
{ error: `run ${run.id} 已结束(${run.status}` },
{ status: 409 }
);
}
const result = jobManager.stopRun(run.id);
if (!result.ok) {
return Response.json(
{ error: result.message ?? "停止失败" },
{ status: 409 }
);
}
return Response.json(result.run ?? getRun(run.id));
} catch (err) {
return Response.json({ error: (err as Error).message }, { status: 500 });
}
}