oban v0.2.0 Release Notes
Release Date: 2019-05-15 // almost 5 years ago-
โ Added
- [Oban] Add
pause_queue/2
,resume_queue/2
andscale_queue/3
for dynamically controlling queues. - ๐ท [Oban] Add
kill_job/2
for terminating running jobs and marking them as discarded. - [Oban] Add
config/0
for retreiving the supervisors config. This is primarily useful for integrating oban into external applications. - ๐ท [Oban.Queue.Producer] Use database triggers to immediately dispatch when a job
is inserted into the
oban_jobs
table. - ๐ท [Oban.Job] Execution errors are stored as a jsonb array for each job. Each
error is stored, not just the most recent one. Error entries contains these
keys:
at
The utc timestamp when the error occurred atattempt
The attempt number when the error ocurrederror
A formatted error message and stacktrace, passed throughException.blame/3
- [Oban.Config] Validate all options based on type and allowed values. Any invalid option will raise, preventing supervisor boot.
- [Oban.Notifier] Broadcast runtime gossip through pubsub, allowing any external system to get stats at the node and queue level.
๐ Changed
- [Oban.Queue.Supervisor] Set the
min_demand
to 1 for all consumers. This ensures that each queue will run the configured number of concurrent jobs. By default themin_demand
is half ofmax_demand
, which means a few slow jobs can prevent the queue from running the expected number of concurrent jobs. - ๐ท [Oban.Job] Change psuedo-states based on job properties into fixed states,
this applies to
scheduled
andretryable
. - ๐ท [Oban.Job] The "Elixir" prefix is stripped from worker names before storing jobs in the database. Module lookup performs the same way, but it cleans up displaying the worker name as a string.
- ๐ท [Oban.Job] Accept all job fields as changeset parameters. While not encouraged for regular use, this is essential for testing various states.
- [Oban] Add