Worker Runtime Flows
Global loop pattern
sequenceDiagram
participant Loop as worker loop
participant CFG as cConfig and cConfigExt
participant LOCK as runtime lock
participant RUN as job run tracker
participant TASK as Celery task
Loop->>CFG: iterate active enabled configs
Loop->>CFG: read jobs.*.config and runtime
Loop->>LOCK: try acquire per-config lock
Loop->>RUN: create queued job run
Loop->>TASK: dispatch Celery task
TASK-->>RUN: mark running or success or failure
TASK-->>CFG: update runtime timestamps and state
Dependency chain
flowchart LR
PKG[packages loop] --> PAY[payloads loop]
PKG --> MSG[messages loop]
PKG --> ALT[alerts loop]
MSG --> ALT
ALT --> UI[alerts and overview cards]
MSG --> UIP[message popups]
PKG --> UIF[packages and artifacts]
Message loop split
The message sync is intentionally split:
- hot loop uses
repeat_interval - cold loop uses
repeat_interval_cold
This allows recent operational messages to refresh faster than older history windows.
Example runtime keys
| Runtime key | Typical meaning |
|---|---|
last_run | last generic loop execution |
last_run_hot | last hot message sync |
last_run_cold | last cold message sync |
last_seen_completed | highest completed message timestamp seen by alert logic |
active_since_completed | alert-runtime continuity marker |
last_deep_sync | last nightly deep sync for package or artifact state |