From 4b4343a9fd8c75b8dba3d0a6c94a3ea844bd8424 Mon Sep 17 00:00:00 2001 From: jialin Date: Mon, 26 May 2025 16:15:09 +0800 Subject: [PATCH] chore: add watch for worker and gpu updating --- src/hooks/use-table-fetch.ts | 20 +++++++++++-------- .../llmodels/components/instance-item.tsx | 2 +- src/pages/llmodels/components/table-list.tsx | 6 ++++++ .../components/ground-embedding.tsx | 6 +++++- src/pages/playground/config/paste.worker.ts | 0 src/pages/resources/components/gpus.tsx | 6 ++++-- .../resources/components/model-files.tsx | 2 +- src/pages/resources/components/workers.tsx | 11 ++++++++-- 8 files changed, 38 insertions(+), 15 deletions(-) delete mode 100644 src/pages/playground/config/paste.worker.ts diff --git a/src/hooks/use-table-fetch.ts b/src/hooks/use-table-fetch.ts index c57c56cc..e0c189cf 100644 --- a/src/hooks/use-table-fetch.ts +++ b/src/hooks/use-table-fetch.ts @@ -7,14 +7,18 @@ import _ from 'lodash'; import qs from 'query-string'; import { useEffect, useRef, useState } from 'react'; -export default function useTableFetch(options: { - API?: string; - watch?: boolean; - fetchAPI: (params: any) => Promise>; - deleteAPI?: (id: number, params?: any) => Promise; - contentForDelete?: string; - defaultData?: any[]; -}) { +type WatchConfig = + | { watch?: false | undefined; API?: string } + | { watch: true; API: string }; + +export default function useTableFetch( + options: { + fetchAPI: (params: any) => Promise>; + deleteAPI?: (id: number, params?: any) => Promise; + contentForDelete?: string; + defaultData?: any[]; + } & WatchConfig +) { const { fetchAPI, deleteAPI, diff --git a/src/pages/llmodels/components/instance-item.tsx b/src/pages/llmodels/components/instance-item.tsx index a3c03e84..5ef103bc 100644 --- a/src/pages/llmodels/components/instance-item.tsx +++ b/src/pages/llmodels/components/instance-item.tsx @@ -478,7 +478,7 @@ const InstanceItem: React.FC = ({ return ( = ({ await handleStartModel(row); message.success(intl.formatMessage({ id: 'common.message.success' })); updateExpandedRowKeys([row.id, ...expandedRowKeys]); + setTimeout(() => { + handleSearch?.(); + }, 150); } if (val === 'api') { @@ -490,6 +493,9 @@ const Models: React.FC = ({ name: row.name, async onOk() { await handleStopModel(row); + setTimeout(() => { + handleSearch?.(); + }, 150); } }); } diff --git a/src/pages/playground/components/ground-embedding.tsx b/src/pages/playground/components/ground-embedding.tsx index e8e84011..b6ce42d6 100644 --- a/src/pages/playground/components/ground-embedding.tsx +++ b/src/pages/playground/components/ground-embedding.tsx @@ -465,7 +465,11 @@ const GroundEmbedding: React.FC = forwardRef((props, ref) => { - diff --git a/src/pages/playground/config/paste.worker.ts b/src/pages/playground/config/paste.worker.ts deleted file mode 100644 index e69de29b..00000000 diff --git a/src/pages/resources/components/gpus.tsx b/src/pages/resources/components/gpus.tsx index 179ad44c..d32f91ca 100644 --- a/src/pages/resources/components/gpus.tsx +++ b/src/pages/resources/components/gpus.tsx @@ -8,7 +8,7 @@ import { useIntl } from '@umijs/max'; import { ConfigProvider, Empty, Table } from 'antd'; import _ from 'lodash'; import React from 'react'; -import { queryGpuDevicesList } from '../apis'; +import { GPU_DEVICES_API, queryGpuDevicesList } from '../apis'; import { GPUDeviceItem } from '../config/types'; const { Column } = Table; @@ -48,7 +48,9 @@ const GPUList: React.FC = () => { handleSearch, handleNameChange } = useTableFetch({ - fetchAPI: queryGpuDevicesList + fetchAPI: queryGpuDevicesList, + watch: true, + API: GPU_DEVICES_API }); const intl = useIntl(); diff --git a/src/pages/resources/components/model-files.tsx b/src/pages/resources/components/model-files.tsx index 9cddbc6c..59f0142b 100644 --- a/src/pages/resources/components/model-files.tsx +++ b/src/pages/resources/components/model-files.tsx @@ -547,7 +547,7 @@ const ModelFiles = () => { } }; - const columns = [ + const columns: any[] = [ { title: intl.formatMessage({ id: 'models.form.source' }), dataIndex: 'source', diff --git a/src/pages/resources/components/workers.tsx b/src/pages/resources/components/workers.tsx index 86898dba..37fd4d99 100644 --- a/src/pages/resources/components/workers.tsx +++ b/src/pages/resources/components/workers.tsx @@ -18,7 +18,12 @@ import { ConfigProvider, Empty, Table, Tooltip, message } from 'antd'; import _ from 'lodash'; import React, { useCallback, useState } from 'react'; import { useHotkeys } from 'react-hotkeys-hook'; -import { deleteWorker, queryWorkersList, updateWorker } from '../apis'; +import { + WORKERS_API, + deleteWorker, + queryWorkersList, + updateWorker +} from '../apis'; import { WorkerStatusMapValue, status } from '../config'; import { Filesystem, GPUDeviceItem, ListItem } from '../config/types'; import AddWorker from './add-worker'; @@ -100,7 +105,9 @@ const Workers: React.FC = () => { } = useTableFetch({ fetchAPI: queryWorkersList, deleteAPI: deleteWorker, - contentForDelete: 'worker' + contentForDelete: 'worker', + watch: true, + API: WORKERS_API }); const intl = useIntl();