From 6e0e306082118313b487c2bc1ece814a7200df76 Mon Sep 17 00:00:00 2001 From: Momentry Studio Date: Fri, 23 Oct 2026 01:31:50 +0800 Subject: [PATCH] fix: optimize MBE start flow - skip redundant frontend polling - Backend already polls 60s for MBE port readiness - Frontend no longer polls 30s after backend returns - Total wait time: ~60s instead of ~90s - Start timeout set to 60s for MBE --- src/views/AdminView.vue | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/views/AdminView.vue b/src/views/AdminView.vue index d1fce4a..e4a3268 100644 --- a/src/views/AdminView.vue +++ b/src/views/AdminView.vue @@ -761,13 +761,22 @@ async function startService(name: string) { const started = typeof result === 'string' ? result === 'started' : result?.result === 'started' s.result.value = started ? (name === 'mbe' ? 'Loading model...' : 'Service started') : JSON.stringify(result) s.ok.value = started - // Poll up to 30s for the service to pass health check - for (let i = 0; i < 15; i++) { - await new Promise(r => setTimeout(r, 2000)) + // For MBE, backend already polls for 60s, just test once + if (name !== 'mbe') { + // Poll up to 30s for the service to pass health check + for (let i = 0; i < 15; i++) { + await new Promise(r => setTimeout(r, 2000)) + await s.test() + if (s.status.value === 'online') { + s.result.value = 'Service started' + break + } + } + } else { + // MBE: test once after backend returns await s.test() if (s.status.value === 'online') { s.result.value = 'Service started' - break } } } catch (e: any) {