Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Use cases

Each page in this section starts from a concrete problem, shows a complete cronoq setup, and lists the specific benefits you get compared with a plain queue. Not sure which one applies? Start with Benefits at a glance, which maps symptoms to pages.

Use caseTypical problemKey cronoq features
LLM and agent workloadsRate limits, 429 storms, unpredictable latency, expensive workersToken buckets, retry_after, priorities, deadlines, autoscaling
Interactive and batch work on shared capacityUser requests stuck behind batch jobs; batch jobs starved at peakPriority classes, aging, per-class wait SLOs
Deadline-driven workSLAs missed although capacity existed earlierDeadline urgency, EDF ordering, overdue escalation
Scheduled jobs with guaranteed capacityCron jobs start late because workers are busyFixed starts, reservations, worker holds, miss policies, cron
Pipelines and DAGsHand-rolled dependency tracking; downstream steps run on bad inputKeys, edge conditions, atomic batches, failure handlers
GPUs and other scarce resourcesOversubscribed GPUs, connection pools or licencesSemaphores shared across pools; no head-of-line blocking
High-throughput microtasksScheduler overhead dominates millisecond tasksO(1) dispatch, bulk enqueue, ~1M decisions/s per core
Polyglot worker fleetsWorkers in several languages and machinesgRPC worker protocol, leases, heartbeats, HTTP API
Cost-aware autoscalingOver-provisioned at night, saturated at noonQueue-pressure autoscaling, stabilization, cost metrics, KEDA
Migrating from ElasticPrioritySchedulerExisting code on the original Python schedulercronoq.compat drop-in

Use cases combine freely: an LLM pipeline can use DAGs, rate limits, deadlines and autoscaling at the same time, because all of them are properties of tasks and pools in a single engine.