Orchestrace workerů
Jak worker plánuje monitory, obsluhuje retrye a koordinuje locky.
Orchestrace workerů
Worker čte joby z Redis-backed front, vynucuje rate limity a zapisuje snapshoty atomicky.
Plánování
- Každý monitor ukládá
nextRunAt; joby se podle toho enqueueují. - Locky brání dvojímu zpracování při běhu více workerů.
- Grace windows upravují kadenci automaticky podle stavu plánu.
Retrye
- Přechodné chyby se retryují s exponential backoffem a jitterem.
- Hlavičky Retry-After na 429 se respektují ještě před pokračováním.
for (let attempt = 0; attempt <= retryMaxAttempts; attempt++) {
last = await attemptOnce();
if (!last.error && last.statusCode && last.statusCode < 400) break;
const backoff = retryBaseDelayMs * Math.pow(2, attempt);
await sleep(Math.min(backoff + Math.random() * retryBaseDelayMs, 30_000));
}Processing pipeline
- Fetch target -> normalize -> hash -> compare -> write snapshot/diff -> send alerts/webhooks -> update health.
- Vyhodnocení health používá poslední snapshoty, aby se omezil flapping.