Skip to content
bryckbost edited this page Jan 2, 2012 · 21 revisions

3.0.0 – 2011-12-30

  • New: Named queues
  • New: Job/Worker lifecycle callbacks
  • Change: Active Record backend support is provided by a separate gem
  • Change: Enqueue hook is called before jobs are saved so that they may be modified
  • Fix problem deserializing models that use a custom primary key column
  • Fix deserializing AR models when the object isn’t in the default scope
  • Fix hooks not getting called when delay_jobs is false

2.1.4 – 2011-02-11

  • Working around issues when psych is loaded, fixes issues with bundler 1.0.10 and Rails 3.0.4
  • Added p/-prefix option to help differentiate multiple delayed job workers on the same host.

2.1.3 – 2011-01-20

  • Revert worker contention fix due to regressions
  • Added Delayed::Worker.delay_jobs flag to support running jobs immediately

2.1.2 – 2010-12-01

  • Remove contention between multiple workers by performing an update to lock a job before fetching it
  • Job payloads may implement #max_attempts to control how many times it should be retried
  • Fix for loading ActionMailer extension
  • Added ‘delayed_job_server_role’ Capistrano variable to allow delayed_job to run on its own worker server
    set :delayed_job_server_role, :worker
  • Fix `rake jobs:work` so it outputs to the console

2.1.1 – 2010-11-14

  • Fix issue with worker name not getting properly set when locking a job
  • Fixes for YAML serialization

2.1.0 – 2010-11-14

  • Added enqueue, before, after, success, error, and failure. See the README
  • Remove Merb support
  • Remove all non Active Record backends into separate gems. See https://github.com/collectiveidea/delayed_job/wiki/Backends
  • remove rails 2 support. delayed_job 2.1 will only support Rails 3
  • New pure-YAML serialization
  • Added Rails 3 railtie and generator
  • Changed @@sleep_delay to self.class.sleep_delay to be consistent with other class variable usage
  • Added —sleep-delay command line option

2.0.4 – 2010-11-14

  • Fix issue where dirty tracking prevented job from being properly unlocked
  • Add delayed_job_args variable for Capistrano recipe to allow configuration of started workers (e.g. “-n 2 —max-priority 10”)
  • Added options to handle_asynchronously
  • Added Delayed::Worker.default_priority
  • Allow private methods to be delayed
  • Fixes for Ruby 1.9
  • Added -m command line option to start a monitor process
  • normalize logging in worker
  • Deprecate #send_later and #send_at in favor of new #delay method
  • Added #delay to Object that allows you to delay any method and pass options:
    options = {:priority => 19, :run_at => 5.minutes.from_now}
    UserMailer.delay(options).deliver_confirmation(@user)

2.0.3 – 2010-04-16

  • Fix initialization for Rails 2.x

2.0.2 – 2010-04-08

2.0.1 – 2010-04-03

  • Bug fix for using ActiveRecord backend with daemon [martinbtt]

2.0.0 – 2010-04-03

  • Multiple backend support (See README for more details)
  • Added MongoMapper backend [zbelzer, moneypools]
  • Added DataMapper backend [lpetre]
  • Reverse priority so the jobs table can be indexed. Lower numbers have higher priority. The default priority is 0, so increase it for jobs that are not important.
  • Move most of the heavy lifting from Job to Worker (#work_off, #reschedule, #run, #min_priority, #max_priority, #max_run_time, #max_attempts, #worker_name) [albus522]
  • Remove EvaledJob. Implement your own if you need this functionality.
  • Only use Time.zone if it is set. Closes #20
  • Fix for last_error recording when destroy_failed_jobs = false, max_attempts = 1
  • Implemented worker name_prefix to maintain dynamic nature of pid detection
  • Some Rails 3 compatibility fixes [fredwu]

1.8.5 – 2010-03-15

  • Set auto_flushing=true on Rails logger to fix logging in production
  • Fix error message when trying to send_later on a method that doesn’t exist
  • Don’t use rails_env in capistrano if it’s not set. closes #22
  • Delayed job should append to delayed_job.log not overwrite
  • Version bump to 1.8.5
  • fixing Time.now to be Time.zone.now if set to honor the app set local TimeZone
  • Replaced Worker::SLEEP, Job::MAX_ATTEMPTS, and Job::MAX_RUN_TIME with class methods that can be overridden.