/
Alcatraz
/
Wagomon
Обзор
Документация
Войти
/
Alcatraz
/
Wagomon
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
scripts/poller.js
38 строк
1 KB
saitgalineu
vkr
26 май 2026, 10:08
26 май 2026, 10:08
f9b2919
Код
Авторство
О чём код?
import { pollControllers } from '../src/lib/server/controllerReader.js'; import { getSystemSettings } from '../src/lib/server/systemSettings.js'; import { pollTelegramCallbackQueriesOnce } from '../src/lib/server/telegramUpdatesPoller.js'; const DEFAULT_INTERVAL_MS = 5000; async function getIntervalMs() { const settings = await getSystemSettings(); const raw = settings?.snapshot_refresh_interval_ms; const num = Number(raw); if (!Number.isFinite(num) || num <= 0) return DEFAULT_INTERVAL_MS; return Math.min(Math.max(num, 1000), 60000); } async function loop() { while (true) { const startedAt = Date.now(); let intervalMs = DEFAULT_INTERVAL_MS; try { intervalMs = await getIntervalMs(); await pollControllers(); const handled = await pollTelegramCallbackQueriesOnce().catch(() => 0); if (handled > 0) { console.warn('[poller] telegram callback updates handled', { count: handled }); } } catch (err) { console.error('Poller loop error:', err); } const elapsed = Date.now() - startedAt; const delay = Math.max(0, intervalMs - elapsed); await new Promise((resolve) => setTimeout(resolve, delay)); } } loop().catch((err) => { console.error('Fatal poller error:', err); process.exit(1); });