From a814c4108c1f6ebe0cdde2f6555d247e4561827b Mon Sep 17 00:00:00 2001 From: Fine Date: Tue, 23 Aug 2022 10:40:01 +0800 Subject: [PATCH] reload topology --- .../network-profiling/components/Tasks.vue | 74 ++++++++++--------- 1 file changed, 40 insertions(+), 34 deletions(-) diff --git a/src/views/dashboard/related/network-profiling/components/Tasks.vue b/src/views/dashboard/related/network-profiling/components/Tasks.vue index 6f0f600a..e8408c11 100644 --- a/src/views/dashboard/related/network-profiling/components/Tasks.vue +++ b/src/views/dashboard/related/network-profiling/components/Tasks.vue @@ -17,9 +17,18 @@ limitations under the License. -->
{{ t("taskList") }} + + + + - - -
(false); -const enableTasks = ref(false); /*global Nullable */ const intervalFn = ref>(null); - +const inProcess = ref(false); fetchTasks(); async function changeTask(item: EBPFTaskList) { @@ -125,6 +121,10 @@ async function getTopology() { fixedTriggerDuration > 1800 ? taskStartTime + fixedTriggerDuration * 1000 - 30 * 60 * 1000 : taskStartTime; + let endTime = taskStartTime + fixedTriggerDuration * 1000; + if (taskStartTime + fixedTriggerDuration * 1000 > new Date().getTime()) { + endTime = new Date().getTime(); + } const resp = await networkProfilingStore.getProcessTopology({ serviceInstanceId, duration: { @@ -134,10 +134,7 @@ async function getTopology() { true ), end: dateFormatStep( - getLocalTime( - appStore.utc, - new Date(taskStartTime + fixedTriggerDuration * 1000) - ), + getLocalTime(appStore.utc, new Date(endTime)), appStore.duration.step, true ), @@ -147,9 +144,19 @@ async function getTopology() { if (resp.errors) { ElMessage.error(resp.errors); } + inProcess.value = + taskStartTime + fixedTriggerDuration * 1000 > new Date().getTime() + ? true + : false; + if (!inProcess.value) { + intervalFn.value && clearInterval(intervalFn.value); + } return resp; } async function createTask() { + if (inProcess.value) { + return; + } const serviceId = (selectorStore.currentService && selectorStore.currentService.id) || ""; const serviceInstanceId = @@ -170,21 +177,20 @@ async function createTask() { await getTopology(); } async function enableInterval() { - enableTasks.value = !enableTasks.value; - if (enableTasks.value) { - await networkProfilingStore.keepNetworkProfiling( - networkProfilingStore.selectedNetworkTask.taskId - ); - if (networkProfilingStore.aliveNetwork) { - intervalFn.value = setInterval(() => { - fetchTasks(); - }, 180000); - } - return; + const res = await networkProfilingStore.keepNetworkProfiling( + networkProfilingStore.selectedNetworkTask.taskId + ); + if (res.errors) { + return ElMessage.error(res.errors); + } + if (networkProfilingStore.aliveNetwork) { + intervalFn.value = setInterval(() => { + getTopology(); + }, 180000); } - intervalFn.value && clearInterval(intervalFn.value); } async function fetchTasks() { + intervalFn.value && clearInterval(intervalFn.value); const serviceId = (selectorStore.currentService && selectorStore.currentService.id) || ""; const serviceInstanceId = @@ -198,12 +204,12 @@ async function fetchTasks() { if (res.errors) { return ElMessage.error(res.errors); } - if (enableTasks.value && !networkProfilingStore.aliveNetwork) { - enableTasks.value = false; - return intervalFn.value && clearInterval(intervalFn.value); - } await getTopology(); + if (inProcess.value) { + enableInterval(); + } } + watch( () => selectorStore.currentPod, () => {