The hourly :35 fire was reliably being missed in production: the prop deployment is pinned to a single replica, and frequent ArgoCD deploys restart the pod often enough that some fires land in the swap window. Between 13:35Z and 17:25Z today the cron fired exactly zero times. Switch to :05/:25/:45. Each fire calls seed_current_hour which is idempotent on the (run_time, forecast_hour, kind, source) unique index, so duplicate inserts in the same hour are no-ops at the DB level and don't add cost on the happy path. Three shots per hour gives two retry windows when a deploy kills the pod mid-cron-tick. |
||
|---|---|---|
| .. | ||
| config.exs | ||
| dev.exs | ||
| prod.exs | ||
| runtime.exs | ||
| test.exs | ||