1.4 KiB
1.4 KiB
Nightly Pipeline Scheduler
Auto-starts batch pipelines when inference is available.
What It Does
- Checks inference provider health (OpenRouter, Ollama, RunPod)
- Checks if it's off-peak hours (configurable, default: after 6PM)
- Checks interactive session load (don't fight with live users)
- Checks daily token budget (configurable limit)
- Starts the highest-priority incomplete pipeline
Pipeline Priority Order
| Priority | Pipeline | Deps | Max Tokens |
|---|---|---|---|
| 1 | playground-factory | none | 100,000 |
| 2 | training-factory | none | 150,000 |
| 3 | knowledge-mine | training-factory running | 80,000 |
| 4 | adversary | knowledge-mine running | 50,000 |
| 5 | codebase-genome | none | 120,000 |
Usage
# Normal run (used by cron)
./scripts/nightly-pipeline-scheduler.sh
# Dry run (show what would start)
./scripts/nightly-pipeline-scheduler.sh --dry-run
# Status report
./scripts/nightly-pipeline-scheduler.sh --status
# Force start during peak hours
./scripts/nightly-pipeline-scheduler.sh --force
Configuration
Set via environment variables:
PIPELINE_TOKEN_LIMIT: Daily token budget (default: 500,000)PIPELINE_PEAK_START: Peak hours start (default: 9)PIPELINE_PEAK_END: Peak hours end (default: 18)HERMES_HOME: Hermes home directory (default: ~/.hermes)
Cron
Runs every 30 minutes. Off-peak only (unless --force).
See cron/pipeline-scheduler.yml.