fix(hands,jobs): watchdog window reads the room tail, not the pending cursor
This commit is contained in:
1 parent
91bd50a66d
commit
47c31ac356
6 files changed
+341
-37
No files matched your search
@@ -7,7 +7,8 @@
|
||||
он выведен из крона ЭТОГО ЖЕ джоба (`run.job.cron`) - что зарегистрировано
|
||||
у планировщика, то и написано в строке. Не сводится к «раз в N часов» -
|
||||
пишем `every=unknown`, потому что соврать числом хуже, чем отказаться;
|
||||
- `watch` читает окно комнаты, сверяет возраст последней отметки соседа с
|
||||
- `watch` читает окно - последние `WINDOW` сообщений САМОЙ комнаты, а не
|
||||
«что нового с курсора», - сверяет возраст последней отметки соседа с
|
||||
порогом из ЕГО ЖЕ строки, печатает в комнату `ack` и - если цепь молчит -
|
||||
отдаёт тревогу мастеру через `run.spawn_job`, как это делает триаж
|
||||
вайбграма: будить ли владельца, решает диспетчер.
|
||||
@@ -78,7 +79,7 @@ async def watch(run: JobRun) -> None:
|
||||
if VIBEGRAM_HB is None:
|
||||
return
|
||||
try:
|
||||
events = await VIBEGRAM_HB.pending(limit=WINDOW)
|
||||
window = await VIBEGRAM_HB.window(WINDOW)
|
||||
except Exception: # noqa: BLE001 - любой отказ хаба это отсутствие показания
|
||||
# Окно не прочитано - показания нет вовсе, и тревога тут запрещена
|
||||
# ровно так же, как на съехавшем окне: молчание хаба это не молчание
|
||||
@@ -88,9 +89,10 @@ async def watch(run: JobRun) -> None:
|
||||
state = Watch.load(STATE_FILE)
|
||||
report = look(
|
||||
state,
|
||||
events,
|
||||
window.events,
|
||||
now=datetime.now(UTC),
|
||||
res=every_from_cron(run.job.cron, run.scheduler.tz),
|
||||
full=window.full,
|
||||
)
|
||||
sent = True
|
||||
try:
|
||||
|
||||
Reference in new issue
Block a user