v0.5.1
Bug fixes
v0.5.0
Changes
v0.4.2
Improvements
- Fix typos and make improvements in documentation.
- Fix an incorrect reference to
start_link/2 in the documentation generated with
Use OddJob.Pool.
v0.4.1
Improvements
- Hibernate
OddJob.Queue after a 10 second timeout to trigger garbage collection and reduce
memory consumption - Fix typo in CHANGELOG.md
- Fixes and additions to documentation.
v0.4.0
Changes
OddJob.child_spec/1 accepts a keyword list of options that must contain a :name key with
an atom value, plus optional overrides.- Change
OddJob.supervisor_id to OddJob.pool_supervisor_name/1 - Change
OddJob.supervisor to OddJob.pool_supervisor/1 - Change
OddJob.pool_id to OddJob.queue_name/1 - Change
OddJob.Async.ProxyServer to OddJob.Async.Proxy - In the
OddJob module perform/2, perform_many/3, async_perform/2, async_perform_many/3,
perform_after/3, perform_many_after/4, perform_at/3, perform_many_at/4, queue/1,
queue_name/1, pool_supervisor/1, pool_supervisor_name/1, and workers/1 will now return
{:error, :not_found} if the pool does not exist at the time of calling. OddJob.perform_at/3 now only accepts a DateTime struct as the first argument.- Revert previous
pool usage in functions to queue, and change OddJob.Pool to OddJob.Queue - Default pool cannot be renamed.
Additions
- New functions
perform_many/3, async_perform_many/3, perform_many_after/4, and
perform_many_at/4 can more efficiently enqueue large batches of jobs - New public function
OddJob.start_link/1 can be used to start OddJob pools use OddJob.Pool to create module based job pools with runtime configuration and custom start
options for the top level supervisor- New options for
max_restarts and max_seconds join pool_size as configuration for the worker
supervisor - Any pool can override the default config and have its own configuration
- Config can be set for user-supervised pools by passing an options list to the
OddJob child spec
tuple: {OddJob, name: :work, pool_size: 10}, or to OddJob.start_link/1 for module-based pools.
Improvements
- Use
:via process naming for dynamically named processes. - Every pool supervises its own proxy supervisor and scheduler supervisor to increase isolation
between pools.
- Better documentation about version history.
- Better module documentation.
v0.3.3
- Fix a typo in documentation.
v0.3.2
- Improve documentation of
perform_this macros.
v0.3.1
- Fix a mistake in documentation
v0.3.0
- Remove
__using__ macro from OddJob module - Change
to_perform_this macro name to perform_this - Add
:at and :after keyword options to perform_this for scheduling jobs - Fix bug that causes pool to overmonitor workers in the event of worker supervisor shutdown
- Isolate every
perform_after/perform_at schedule in its own process so a scheduling failure
doesn't destroy all schedules - Change default pool name to
:job - Change config options
- Rename
queue to pool in public functions and internal implementation - Add another level of supervision for workers, so pool does not restart when workers are failing,
which would cause the job queue to be lost.
- Improvements and fixes to documentation and tests