View Source Changelog

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