Как спроектировать distributed task scheduler на Go?

Senior
99 просмотров
AFK Offer AI

Leader election (etcd/Raft) выбирает scheduler. Scheduler планирует задачи (cron expression → next run time), кладёт в priority queue. Workers берут задачи через FOR UPDATE SKIP LOCKED или distributed queue. Heartbeat от workers. Если worker умер — задача возвращается в очередь. Idempotent execution. Хранение: PostgreSQL для задач, Redis для distributed lock.

Следующий вопрос

Что такое runtime.KeepAlive?