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; 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); 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; if (speedAbortRef.current) return;
setSpeedLoading(false); setSpeedLoading(false);
}, [connections]); }, [connections]);