Adoption#

Oban Pro is designed as a drop-in enhancement to Oban. Once you’ve installed the package and schema, your application automatically benefits from Pro’s optimizations without any code changes.

Automatic Improvements#

Pro replaces several internal operations with optimized implementations that are enabled when you install the package:

  • Bulk Inserts — Enqueueing multiple jobs with enqueue_many uses a single optimized database operation rather than inserting jobs one at a time.

  • Bulk Acking — Completing, cancelling, snoozing, etc. uses batched updates instead of individual queries per job.

  • Accurate Rescue — Orphaned jobs from node restarts or crashed queues are rescued immediately (~60 seconds) rather than waiting for a fixed timeout (5+ minutes). Long-running jobs won’t be rescued prematurely.

These optimizations reduce database round-trips and improve throughput, especially under high load or when processing large batches of jobs.

Multi-Process Execution#

For CPU-intensive workloads, switch from oban start to obanpro start to run jobs across multiple Python processes. This bypasses the GIL and enables true parallelism utilizing multiple cores, while respecting your queue’s concurrency limits:

- oban start
+ obanpro start

See Multi-Process for configuration options and performance details.

Next Steps#

With Pro installed, you can start using its advanced features:

  • Smart Concurrency — Global limits, rate limiting, and partitioned queues

  • Unique Jobs — Prevent duplicate jobs based on configurable constraints

  • Workflows — Compose jobs with dependencies for complex pipelines