EnsureRunIngestionScheduleWorkflow
Purpose
Создает или обновляет Temporal schedule для периодического запуска RunIngestionWorkflow.
Код: internal/worker/workflows/run_ingestion_schedule.go
Input / Output
Input (models.EnsureRunIngestionScheduleInput):
- schedule_id, cron, timezone, task_queue
- data_source_id
- name (optional)
- metadata (optional)
- paused
- preserve_paused_state (optional)
Output (models.EnsureRunIngestionScheduleResult):
- schedule_id
- created, updated, paused
Called Activities / Children
- Activity:
EnsureRunIngestionSchedule - Child workflows: нет
Retry / Failure Behavior
- Activity timeout:
1m - Retry:
max_attempts=3, backoff2s -> 20s - Workflow завершается ошибкой при пустом/невалидном
data_source_idили проблемах доступа к Temporal Schedule API.
Manual Run
docker compose exec -T temporal-admin-tools temporal workflow start \
--address temporal:7233 --namespace default --task-queue default \
--type EnsureRunIngestionScheduleWorkflow \
--workflow-id ensure-run-ingestion-schedule-manual-$(date +%s) \
--input '{"schedule_id":"run-ingestion","cron":"0 0 * * *","timezone":"UTC","task_queue":"default","data_source_id":"<uuid>","paused":true,"preserve_paused_state":true}'
Related Tables / Logs
- Schedule defaults:
TERRY_DEFAULT_SCHEDULE_ID,TERRY_DEFAULT_SCHEDULE_CRON,TERRY_DEFAULT_SCHEDULE_TZ - Worker startup can auto-upsert paused schedule when
TERRY_DEFAULT_DATA_SOURCE_IDis set