diff options
Diffstat (limited to 'activejob/CHANGELOG.md')
-rw-r--r-- | activejob/CHANGELOG.md | 43 |
1 files changed, 29 insertions, 14 deletions
diff --git a/activejob/CHANGELOG.md b/activejob/CHANGELOG.md index afdd42be33..794d05d1b4 100644 --- a/activejob/CHANGELOG.md +++ b/activejob/CHANGELOG.md @@ -1,25 +1,40 @@ -* `ActiveJob::Base.deserialize` delegates to the job class +* Add `:only` option to `assert_enqueued_jobs`, to check the number of times + a specific kind of job is enqueued. + Example: + + def test_logging_job + assert_enqueued_jobs 1, only: LoggingJob do + LoggingJob.perform_later + HelloJob.perform_later('jeremy') + end + end + + *George Claghorn* + +* `ActiveJob::Base.deserialize` delegates to the job class. Since `ActiveJob::Base#deserialize` can be overridden by subclasses (like `ActiveJob::Base#serialize`) this allows jobs to attach arbitrary metadata - when they get serialized and read it back when they get performed. Example: + when they get serialized and read it back when they get performed. - class DeliverWebhookJob < ActiveJob::Base - def serialize - super.merge('attempt_number' => (@attempt_number || 0) + 1) - end + Example: - def deserialize(job_data) - super - @attempt_number = job_data['attempt_number'] - end + class DeliverWebhookJob < ActiveJob::Base + def serialize + super.merge('attempt_number' => (@attempt_number || 0) + 1) + end + + def deserialize(job_data) + super + @attempt_number = job_data['attempt_number'] + end - rescue_from(TimeoutError) do |exception| - raise exception if @attempt_number > 5 - retry_job(wait: 10) + rescue_from(TimeoutError) do |exception| + raise exception if @attempt_number > 5 + retry_job(wait: 10) + end end - end *Isaac Seymour* |