[backend][B] Шедулер на демо-часах: напоминания о дозах, missed через 2 ч, чек-ины, шкалы по расписанию, молчание #13

Closed
opened 2026-10-03 14:38:55 +03:00 by Eleboba · 0 comments
Owner

Описание

SPEC §8 + ADR-005. app/scheduler/jobs.py: start()/stop() (уже вызываются из main) + run_until(now) — прогон всех событий до текущего (виртуального) времени по порядку, идемпотентно.

Желаемый результат

Генерация pending-доз по prescriptions.schedule, событие med_reminder в движок, missed через 2 ч без ответа, ежедневный daily_checkin, scale_due по расписанию модулей (config/modules.yaml), молчание > 3 дней → after_data_change. advance(1 day) в API вызывает run_until. Тесты на виртуальных часах.

Зона и владение файлами

Lane B (backend) — владеет: app/api/** (кроме schemas.py), app/services/**, app/scheduler/**, app/integrations/** (кроме base.py), app/db/**, scripts/**, data/**, tests/test_api*.py, tests/test_services*.py, tests/test_scheduler*.py, tests/test_seed*.py, tests/test_integrations*.py.

Замороженные контракты (менять только отдельным мелким PR с пингом всех): app/core/types.py, app/dialog/contracts.py, app/api/schemas.py, app/integrations/base.py, app/services/contracts.py, app/main.py, app/config.py, config/modules.yaml, config/rules.yaml, config/scales/*, pyproject.toml/uv.lock, docker-compose.yml, Makefile.


Лог выполнения

2026-10-04

  • app/scheduler/demo.py: run_until(now) — дозы + med_reminder, missed через 2 ч → мониторинг, daily_checkin, scale_due по config/modules.yaml, ежедневный проход мониторинга (молчание) → reach_out.
  • Идемпотентность через scheduler_events, устаревшие события не отправляются, без согласия/в кризисе — тишина. Конфиг config/scheduler.yaml.
  • POST /demo/clock/advance вызывает прогон. Тесты tests/test_scheduler_demo.py. PR в dev.
## Описание SPEC §8 + ADR-005. `app/scheduler/jobs.py: start()/stop()` (уже вызываются из main) + `run_until(now)` — прогон всех событий до текущего (виртуального) времени по порядку, идемпотентно. ## Желаемый результат Генерация pending-доз по `prescriptions.schedule`, событие `med_reminder` в движок, `missed` через 2 ч без ответа, ежедневный `daily_checkin`, `scale_due` по расписанию модулей (`config/modules.yaml`), молчание > 3 дней → `after_data_change`. `advance(1 day)` в API вызывает `run_until`. Тесты на виртуальных часах. ## Зона и владение файлами **Lane B (backend)** — владеет: `app/api/**` (кроме `schemas.py`), `app/services/**`, `app/scheduler/**`, `app/integrations/**` (кроме `base.py`), `app/db/**`, `scripts/**`, `data/**`, `tests/test_api*.py`, `tests/test_services*.py`, `tests/test_scheduler*.py`, `tests/test_seed*.py`, `tests/test_integrations*.py`. **Замороженные контракты** (менять только отдельным мелким PR с пингом всех): `app/core/types.py`, `app/dialog/contracts.py`, `app/api/schemas.py`, `app/integrations/base.py`, `app/services/contracts.py`, `app/main.py`, `app/config.py`, `config/modules.yaml`, `config/rules.yaml`, `config/scales/*`, `pyproject.toml`/`uv.lock`, `docker-compose.yml`, `Makefile`. --- ## Лог выполнения ### 2026-10-04 - `app/scheduler/demo.py`: run_until(now) — дозы + med_reminder, missed через 2 ч → мониторинг, daily_checkin, scale_due по config/modules.yaml, ежедневный проход мониторинга (молчание) → reach_out. - Идемпотентность через `scheduler_events`, устаревшие события не отправляются, без согласия/в кризисе — тишина. Конфиг `config/scheduler.yaml`. - `POST /demo/clock/advance` вызывает прогон. Тесты `tests/test_scheduler_demo.py`. PR в dev.
Eleboba added this to the Этап 1 · Ветераны СВО milestone 2026-10-03 14:38:55 +03:00
Eleboba added the P0size/1backendfeature labels 2026-10-03 14:38:55 +03:00
Eleboba changed title from [backend] Шедулер на демо-часах: напоминания о дозах, missed через 2 ч, чек-ины, молчание to [backend][B] Шедулер на демо-часах: напоминания о дозах, missed через 2 ч, чек-ины, шкалы по расписанию, молчание 2026-10-03 15:16:36 +03:00
Eleboba added the lane/Bstage/veterans labels 2026-10-03 15:16:37 +03:00
Eleboba self-assigned this 2026-10-04 03:16:23 +03:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Reference: MedITron/PTSRaiAgent#13