(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,
() => {