feat(NetworkMapScheduler): add next scheduled run time to settings response and update frontend to display next run time
Publish Fast Tabler Docker image / build-and-push-fast (push) Successful in 1m36s

This commit is contained in:
2026-02-18 14:11:27 +07:00
parent 1fda3a5f4e
commit 8cc3575902
4 changed files with 33 additions and 26 deletions
+16
View File
@@ -320,6 +320,8 @@ async function writeCache(pingMap, speedMap) {
}
let schedulerTimer = null;
/** Время последнего запуска по расписанию (для расчёта следующего) */
let lastScheduledRunAt = null;
function getSettingsFromUiSettings(uiSettings) {
return {
@@ -341,6 +343,7 @@ function initNetworkMapScheduler(logger, port) {
const baseUrl = `http://127.0.0.1:${port}`;
async function tick() {
lastScheduledRunAt = Date.now();
let uiSettings;
try {
const raw = await readS3TextObject(UI_SETTINGS_KEY).catch(() => ({ body: '{}' }));
@@ -418,6 +421,18 @@ function pushLog(msg) {
logBuffer.push(msg);
}
/**
* Время следующего запуска по расписанию (timestamp или null если выключено).
* @param {object} settings - результат getSettingsFromUiSettings()
* @returns {number|null}
*/
function getNextRunAt(settings) {
if (!settings || !settings.enabled) return null;
const intervalMs = (settings.intervalMinutes || DEFAULT_INTERVAL_MINUTES) * 60 * 1000;
const from = lastScheduledRunAt || Date.now();
return from + intervalMs;
}
module.exports = {
runJob,
initNetworkMapScheduler,
@@ -427,6 +442,7 @@ module.exports = {
setLogMaxLines,
pushLog,
getSettingsFromUiSettings,
getNextRunAt,
loadUiSettings: loadUiSettings,
buildConnections,
LogBuffer,