bugfix: 一些bug修复
This commit is contained in:
Vendored
+8
-2
@@ -1,9 +1,14 @@
|
||||
// server/api/cache/clear.post.ts - 清空答题缓存接口
|
||||
import { setResponseStatus } from "h3";
|
||||
import { invalidAccessTokenResponse, verifyAccessToken } from "~~/server/utils/auth";
|
||||
|
||||
import {
|
||||
invalidAccessTokenResponse,
|
||||
verifyAccessToken
|
||||
} from "~~/server/utils/auth";
|
||||
import { answerCache } from "~~/server/utils/cache";
|
||||
import { serverEnv } from "~~/server/utils/env";
|
||||
import { createApiLogger } from "~~/server/utils/logging";
|
||||
import { clearQaRecords } from "~~/server/utils/runtimeState";
|
||||
|
||||
/**
|
||||
* 清空内存缓存
|
||||
@@ -32,8 +37,9 @@ export default defineEventHandler((event) => {
|
||||
};
|
||||
}
|
||||
|
||||
// 清空当前进程内缓存,不影响问答记录和运行统计中的 uptime
|
||||
// 清空当前进程内缓存和问答记录,不影响运行统计中的 uptime
|
||||
answerCache.clear();
|
||||
clearQaRecords();
|
||||
logger.info("finish_success");
|
||||
|
||||
return {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// server/api/records.get.ts - 最近问答记录接口,供 Nuxt Dashboard 表格展示
|
||||
import { setResponseStatus } from "h3";
|
||||
import { getQuery, setResponseStatus } from "h3";
|
||||
|
||||
import {
|
||||
invalidAccessTokenResponse,
|
||||
@@ -28,17 +28,40 @@ export default defineEventHandler((event) => {
|
||||
return {
|
||||
success: false,
|
||||
message: invalidAccessTokenResponse().msg,
|
||||
records: []
|
||||
records: [],
|
||||
page: 1,
|
||||
size: 10,
|
||||
total: 0
|
||||
};
|
||||
}
|
||||
|
||||
const query = getQuery(event);
|
||||
const rawPage = Number.parseInt(query.page?.toString() || "1", 10);
|
||||
const rawSize = Number.parseInt(query.size?.toString() || "10", 10);
|
||||
const size = Number.isFinite(rawSize)
|
||||
? Math.min(Math.max(rawSize, 1), 100)
|
||||
: 10;
|
||||
const records = getQaRecords();
|
||||
const total = records.length;
|
||||
const maxPage = Math.max(1, Math.ceil(total / size));
|
||||
const page = Number.isFinite(rawPage)
|
||||
? Math.min(Math.max(rawPage, 1), maxPage)
|
||||
: 1;
|
||||
const start = (page - 1) * size;
|
||||
const pageRecords = records.slice(start, start + size);
|
||||
|
||||
logger.info("finish_success", {
|
||||
count: records.length
|
||||
page,
|
||||
size,
|
||||
total,
|
||||
count: pageRecords.length
|
||||
});
|
||||
|
||||
return {
|
||||
success: true,
|
||||
records
|
||||
records: pageRecords,
|
||||
page,
|
||||
size,
|
||||
total
|
||||
};
|
||||
});
|
||||
|
||||
@@ -66,7 +66,10 @@ export const addQaRecord = (record: Omit<QaRecord, "time" | "timestamp">) => {
|
||||
export const getQaRecords = () => {
|
||||
return [...qaRecords].reverse();
|
||||
};
|
||||
|
||||
/** 清空进程内问答记录,通常和 answerCache.clear() 一起调用 */
|
||||
export const clearQaRecords = () => {
|
||||
qaRecords.length = 0;
|
||||
};
|
||||
/** 生成 `/api/stats` 响应,实时计算 uptime 和有效缓存数量 */
|
||||
export const getRuntimeStats = () => {
|
||||
return {
|
||||
|
||||
Reference in New Issue
Block a user