refactor(NetworkMapScheduler, NetworkMapDashboard): update speed test logic to ensure single test per server to avoid bandwidth contention
Publish Fast Tabler Docker image / build-and-push-fast (push) Successful in 1m52s

This commit is contained in:
2026-02-18 15:30:47 +07:00
parent 9a8b72de82
commit e269b14f5e
2 changed files with 12 additions and 3 deletions
+6 -1
View File
@@ -295,7 +295,12 @@ async function runJob(opts) {
return null;
}
});
await runWithOnePerKey(speedTasks, (i) => withSpeed[i].speedTestServerId);
// В один момент — только один тест на один сервер назначения (удалённый конец туннеля),
// иначе несколько замеров к одному хостингу делят канал и дают заниженные результаты
await runWithOnePerKey(speedTasks, (i) => {
const c = withSpeed[i];
return c.speedTestServerId === c.fromKey ? c.toKey : c.fromKey;
});
}
await writeCache(pingMap, speedMap);
+6 -2
View File
@@ -321,8 +321,12 @@ export default function NetworkMapDashboard() {
}
}
});
// На каждой ноде (speedTestServerId) в один момент — только один тест, чтобы не делить канал
await runWithOnePerKey(tasks, (i) => withSpeed[i].speedTestServerId);
// В один момент — только один тест на один сервер назначения (удалённый конец туннеля),
// иначе несколько замеров к одному хостингу делят канал и дают заниженные результаты
await runWithOnePerKey(tasks, (i) => {
const c = withSpeed[i];
return c.speedTestServerId === c.fromKey ? c.toKey : c.fromKey;
});
if (speedAbortRef.current) return;
setSpeedLoading(false);
}, [connections]);