From 7a274bc7f0c17cb6ffdd441f9a9287dfcf00694a Mon Sep 17 00:00:00 2001 From: npmrun <1549469775@qq.com> Date: Thu, 14 May 2026 14:57:02 +0800 Subject: [PATCH] feat: add API endpoints for execution logs and stats Co-Authored-By: Claude Opus 4.7 --- server/api/scheduler/executions.get.ts | 16 ++++++++++++++++ server/api/scheduler/stats.get.ts | 10 ++++++++++ 2 files changed, 26 insertions(+) create mode 100644 server/api/scheduler/executions.get.ts create mode 100644 server/api/scheduler/stats.get.ts diff --git a/server/api/scheduler/executions.get.ts b/server/api/scheduler/executions.get.ts new file mode 100644 index 0000000..2c19395 --- /dev/null +++ b/server/api/scheduler/executions.get.ts @@ -0,0 +1,16 @@ +import { listExecutions } from "../../service/scheduler"; + +export default defineWrappedResponseHandler(async (event) => { + const query = getQuery(event); + const page = query.page ? Number(query.page) : 1; + const pageSize = query.pageSize ? Number(query.pageSize) : 20; + + const result = await listExecutions({ + page, + pageSize, + taskId: query.taskId as string | undefined, + status: query.status as string | undefined, + }); + + return R.success(result); +}); diff --git a/server/api/scheduler/stats.get.ts b/server/api/scheduler/stats.get.ts new file mode 100644 index 0000000..f90e04c --- /dev/null +++ b/server/api/scheduler/stats.get.ts @@ -0,0 +1,10 @@ +import { getStats } from "../../service/scheduler"; +import { getJobCount } from "../../scheduler/engine"; + +export default defineWrappedResponseHandler(async () => { + const stats = await getStats(); + return R.success({ + ...stats, + activeJobs: getJobCount(), + }); +});