From fba1b261ee298cea911f4c0246057b69de6f5a8d Mon Sep 17 00:00:00 2001 From: moonrailgun Date: Sun, 16 Jul 2023 01:04:25 +0800 Subject: [PATCH] perf(admin): cache management segmentation --- server/admin/src/client/i18n.ts | 6 ++-- server/admin/src/client/routes/cache.tsx | 35 ++++++++++++++++-------- server/admin/src/server/router/cache.ts | 5 +++- 3 files changed, 32 insertions(+), 14 deletions(-) diff --git a/server/admin/src/client/i18n.ts b/server/admin/src/client/i18n.ts index c9ecc2c4..d5f05875 100644 --- a/server/admin/src/client/i18n.ts +++ b/server/admin/src/client/i18n.ts @@ -77,7 +77,8 @@ export const i18n: TushanContextProps['i18n'] = { cleanTitle: 'Are you sure you want to clear the cache?', cleanDesc: 'Please be cautious in the production environment, clearing the cache may lead to increased pressure on the database in a short period of time', - cleanBtn: 'Clean Cache', + cleanConfigBtn: 'Clean Client Config Cache', + cleanAllBtn: 'Clean All Cache', }, 'system-notify': { create: 'Create System Notify', @@ -253,7 +254,8 @@ export const i18n: TushanContextProps['i18n'] = { cleanTitle: '确定要清理缓存么?', cleanDesc: '生产环境请谨慎操作, 清理缓存可能会导致短时间内数据库压力增加', - cleanBtn: '清理缓存', + cleanConfigBtn: '清理配置缓存', + cleanAllBtn: '清理所有缓存', }, 'system-notify': { create: '创建系统通知', diff --git a/server/admin/src/client/routes/cache.tsx b/server/admin/src/client/routes/cache.tsx index c1c3207b..46a295ff 100644 --- a/server/admin/src/client/routes/cache.tsx +++ b/server/admin/src/client/routes/cache.tsx @@ -4,6 +4,7 @@ import { Card, Message, Popconfirm, + Space, useAsyncRequest, useTranslation, } from 'tushan'; @@ -14,8 +15,10 @@ import { request } from '../request'; */ export const CacheManager: React.FC = React.memo(() => { const { t } = useTranslation(); - const [, cleanCache] = useAsyncRequest(async () => { - const { data } = await request.post('/cache/clean'); + const [, cleanCache] = useAsyncRequest(async (target?: string) => { + const { data } = await request.post('/cache/clean', { + target, + }); if (!data.success) { Message.error(t('tushan.common.failed') + ':' + data.msg); @@ -27,15 +30,25 @@ export const CacheManager: React.FC = React.memo(() => { return ( - - - + + cleanCache('config.client')} + > + + + + cleanCache()} + > + + + ); }); diff --git a/server/admin/src/server/router/cache.ts b/server/admin/src/server/router/cache.ts index 74cc4869..24cd0835 100644 --- a/server/admin/src/server/router/cache.ts +++ b/server/admin/src/server/router/cache.ts @@ -16,7 +16,10 @@ router.post('/clean', auth(), async (req, res, next) => { }); return; } - await broker.cacher.clean(); + + const { target = undefined } = req.body; + + await broker.cacher.clean(target); res.json({ success: true,