keep alive network

This commit is contained in:
Fine 2022-08-24 11:02:14 +08:00
parent 81e7719e3c
commit 371316c0b6

View File

@ -107,7 +107,9 @@ const appStore = useAppStoreWithOut();
const viewDetail = ref<boolean>(false); const viewDetail = ref<boolean>(false);
/*global Nullable */ /*global Nullable */
const intervalFn = ref<Nullable<any>>(null); const intervalFn = ref<Nullable<any>>(null);
const intervalKeepAlive = ref<Nullable<any>>(null);
const inProcess = ref<boolean>(false); const inProcess = ref<boolean>(false);
fetchTasks(); fetchTasks();
async function changeTask(item: EBPFTaskList) { async function changeTask(item: EBPFTaskList) {
@ -157,6 +159,7 @@ async function getTopology() {
} }
if (!inProcess.value) { if (!inProcess.value) {
intervalFn.value && clearInterval(intervalFn.value); intervalFn.value && clearInterval(intervalFn.value);
intervalKeepAlive.value && clearInterval(intervalKeepAlive.value);
} }
return resp; return resp;
} }
@ -184,19 +187,31 @@ async function createTask() {
} }
await fetchTasks(); await fetchTasks();
} }
async function enableInterval() { function enableInterval() {
intervalFn.value = setInterval(getTopology, 30000);
}
function networkInterval() {
intervalKeepAlive.value = setInterval(keepAliveNetwork, 60000);
}
async function keepAliveNetwork() {
const res = await networkProfilingStore.keepNetworkProfiling( const res = await networkProfilingStore.keepNetworkProfiling(
networkProfilingStore.selectedNetworkTask.taskId networkProfilingStore.selectedNetworkTask.taskId
); );
if (res.errors) { if (res.errors) {
intervalKeepAlive.value && clearInterval(intervalKeepAlive.value);
return ElMessage.error(res.errors); return ElMessage.error(res.errors);
} }
if (networkProfilingStore.aliveNetwork) { if (!networkProfilingStore.aliveNetwork) {
intervalFn.value = setInterval(getTopology, 30000); intervalFn.value && clearInterval(intervalFn.value);
intervalKeepAlive.value && clearInterval(intervalKeepAlive.value);
} }
} }
async function fetchTasks() { async function fetchTasks() {
intervalFn.value && clearInterval(intervalFn.value); intervalFn.value && clearInterval(intervalFn.value);
intervalKeepAlive.value && clearInterval(intervalKeepAlive.value);
const serviceId = const serviceId =
(selectorStore.currentService && selectorStore.currentService.id) || ""; (selectorStore.currentService && selectorStore.currentService.id) || "";
const serviceInstanceId = const serviceInstanceId =
@ -216,6 +231,8 @@ async function fetchTasks() {
await getTopology(); await getTopology();
if (inProcess.value) { if (inProcess.value) {
enableInterval(); enableInterval();
networkInterval();
keepAliveNetwork();
} }
} }