Files
clientsflow/frontend/schedulers/client-timeline-calendar/README.md
2026-02-23 10:54:06 +07:00

39 lines
1.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Client Timeline Calendar Scheduler
Одноразовый scheduler-раннер для актуализации `ClientTimelineEntry.datetime` по календарным событиям.
## Что делает
- Ищет неархивные `CalendarEvent` с привязкой к контакту в окне времени вокруг `now`.
- Если событие уже вошло в окно `start - 30 минут`, делает `upsert` в `ClientTimelineEntry` с `contentType=CALENDAR_EVENT` и `datetime=start-30m`.
- Логика идемпотентна: повторный запуск только подтверждает корректное значение.
- Берёт Postgres advisory lock, чтобы параллельные запуски не конфликтовали.
## Переменные окружения
- `DATABASE_URL` (обязательно)
- `TIMELINE_EVENT_PREDUE_MINUTES` (по умолчанию `30`)
- `TIMELINE_EVENT_LOOKBACK_MINUTES` (по умолчанию `180`)
- `TIMELINE_EVENT_LOOKAHEAD_MINUTES` (по умолчанию `1440`)
- `TIMELINE_SCHEDULER_LOCK_KEY` (по умолчанию `603001`)
## Локальный запуск
```bash
cd frontend
node schedulers/client-timeline-calendar/run.mjs
```
## Docker запуск
```bash
docker build -f schedulers/client-timeline-calendar/Dockerfile -t client-timeline-calendar-scheduler .
docker run --rm \
-e DATABASE_URL="$DATABASE_URL" \
client-timeline-calendar-scheduler
```
## Dokploy schedule
Создай Scheduled Job и поставь период `* * * * *` (раз в минуту), который запускает этот контейнер/команду.