feat(hands,jobs): job-run watchdog reads job_runs and alarms on three failures in a row

This commit is contained in:
hh committed 2026-09-22 17:16:17 +00:00
1 parent 6e28ff1e5b
commit 415f49ccd7
5 files changed
+967

No files matched your search

+8
View File
@@ -14,6 +14,7 @@ from beaver_agent.jobs.leisure import tick
from beaver_agent.jobs.logs import logs_watch
from beaver_agent.jobs.memory import curate, memory
from beaver_agent.jobs.rotation import rotate
from beaver_agent.jobs.runs import watch_runs
from beaver_agent.jobs.t3code import t3code_event
from beaver_agent.jobs.vibegram import vibegram
from beaver_agent.jobs.voice import rotate_voice
@@ -37,6 +38,13 @@ jobs = [
# ради чего заведён; чтение 25 событий стоит копейки.
Job("отметка", beat, cron="12 17 * * *", critical=False),
Job("сторож", watch, cron="42 */6 * * *", critical=False),
# Сторож собственного журнала прогонов. Час - это компромисс: окно счёта
# сутки, и джоб, упавший три раза подряд, лежит уже заметно дольше часа,
# так что чаще смысла нет, а реже - тревога стареет на свой же период.
# ":27" выбрана пустой: на ":00" ротация и куратор, на ":40" логи, на
# ":42" сторож соседа, а собственный прогон этого джоба не должен ждать
# очереди за чужим спавном.
Job("прогоны", watch_runs, cron="27 * * * *", critical=False),
Job("память", memory, cron="30 4 * * 0", critical=False),
Job("голосовой", rotate_voice, cron="5 4 * * *", critical=False),
Job("куратор", curate, cron="0 2,8,12,16,20 * * *", critical=False),