Adoption#
Oban Pro is designed as a drop-in enhancement to Oban. Once you’ve installed the package and schema, you can start using Pro features with minimal changes.
Import in Your Application#
To use Pro features like unique jobs or workflows, your application
must import oban_pro before creating jobs:
import oban_pro # Registers Pro extensions for uniqueness, workflows, etc.
When you import oban, it attempts to auto-import oban_pro if installed. However, explicitly
importing oban_pro ensures the extensions are registered regardless of your import patterns.
Note
Running obanpro start only affects the worker process. Your application process (where you call
enqueue) must also import oban_pro for features like uniqueness to work correctly.
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_manyuses 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