fix: add worker message trigger

This commit is contained in:
jialin
2026-01-20 10:36:38 +08:00
parent b4f69a4e2e
commit 9d13b27c9e
5 changed files with 30 additions and 23 deletions
+1 -1
View File
@@ -370,7 +370,7 @@ const VersionsForm: React.FC<AddModalProps> = ({
{ id: 'common.help.eg' },
{
content:
'vllm serve {{model_path}} --port {{port}} --host {{worker_ip}} --served-model-name {{model_name}}'
'{{model_path}} --port {{port}} --host {{worker_ip}} --served-model-name {{model_name}}'
}
)}
label={intl.formatMessage({ id: 'backend.runCommand' })}
@@ -60,8 +60,7 @@ const AddWorker: React.FC<AddWorkerProps> = (props) => {
stepList = []
} = props || {};
const intl = useIntl();
const { addedCount, createModelsChunkRequest, chunkRequestRef } =
useAddWorkerMessage();
const { addedCount, createModelsChunkRequest, reset } = useAddWorkerMessage();
const firstLoad = React.useRef(true);
const axiosTokenRef = React.useRef<any>(null);
const [registrationInfo, setRegistrationInfo] = React.useState<{
@@ -100,8 +99,8 @@ const AddWorker: React.FC<AddWorkerProps> = (props) => {
}
return () => {
firstLoad.current = true;
chunkRequestRef.current?.current?.cancel?.();
axiosTokenRef.current?.cancel?.();
reset();
};
}, [open, cluster_id]);
@@ -109,7 +108,7 @@ const AddWorker: React.FC<AddWorkerProps> = (props) => {
if (open) {
createModelsChunkRequest();
} else {
chunkRequestRef.current?.current?.cancel?.();
reset();
axiosTokenRef.current?.cancel?.();
}
}, [open]);
@@ -9,6 +9,7 @@ export default function useAddWorkerMessage() {
const newItemsRef = useRef<any[]>([]);
const [addedCount, setAddedCount] = useState(0);
const timerRef = useRef<any>(null);
const triggerAtRef = useRef<number>(0);
const showAddWorkerMessage = () => {
if (newItemsRef.current.length > 0) {
@@ -17,12 +18,13 @@ export default function useAddWorkerMessage() {
}
};
const { setChunkRequest, startLoadingRef } = useSetChunkRequest();
const { setChunkRequest } = useSetChunkRequest();
const { updateChunkedList } = useUpdateChunkedList({
events: ['CREATE', 'INSERT'],
dataList: [],
triggerAt: triggerAtRef,
onCreate: (newItems: any) => {
if (startLoadingRef.current) {
if (triggerAtRef.current) {
newItemsRef.current = newItemsRef.current.concat(newItems);
showAddWorkerMessage();
}
@@ -37,18 +39,20 @@ export default function useAddWorkerMessage() {
const resetAddedCount = () => {
setAddedCount(0);
chunkRequestRef.current?.current?.cancel?.();
newItemsRef.current = [];
triggerAtRef.current = 0;
clearTimeout(timerRef.current);
};
const createModelsChunkRequest = async () => {
chunkRequestRef.current?.current?.cancel?.();
resetAddedCount();
try {
chunkRequestRef.current = setChunkRequest({
url: WORKERS_API,
handler: updateHandler
});
triggerAtRef.current = Date.now();
} catch (error) {
// ignore
}
@@ -56,15 +60,14 @@ export default function useAddWorkerMessage() {
useEffect(() => {
return () => {
chunkRequestRef.current?.current?.cancel?.();
newItemsRef.current = [];
clearTimeout(timerRef.current);
resetAddedCount();
};
}, []);
return {
addedCount,
chunkRequestRef,
reset: resetAddedCount,
createModelsChunkRequest
};
}