rails--rails/activejob/CHANGELOG.md

87 lines
3.0 KiB
Markdown
Raw Normal View History

* Add queue name support to Que adapter
*Brad Nauta*, *Wojciech Wnętrzak*
* Don't run `after_enqueue` and `after_perform` callbacks if the callback chain is halted.
class MyJob < ApplicationJob
before_enqueue { throw(:abort) }
after_enqueue { # won't enter here anymore }
end
`after_enqueue` and `after_perform` callbacks will no longer run if the callback chain is halted.
This behaviour is a breaking change and won't take effect until Rails 6.2.
To enable this behaviour in your app right now, you can add in your app's configuration file
`config.active_job.skip_after_callbacks_if_terminated = true`
*Edouard Chin*
* Fix enqueuing and performing incorrect logging message.
Jobs will no longer always log "Enqueued MyJob" or "Performed MyJob" when they actually didn't get enqueued/performed.
```ruby
class MyJob < ApplicationJob
before_enqueue { throw(:abort) }
end
2020-01-15 03:11:40 +00:00
MyJob.perform_later # Will no longer log "Enqueued MyJob" since job wasn't even enqueued through adapter.
```
A new message will be logged in case a job couldn't be enqueued, either because the callback chain was halted or
because an exception happened during enqueing. (i.e. Redis is down when you try to enqueue your job)
*Edouard Chin*
* Add an option to disable logging of the job arguments when enqueuing and executing the job.
class SensitiveJob < ApplicationJob
self.log_arguments = false
def perform(my_sensitive_argument)
end
end
2019-11-09 14:13:07 +00:00
When dealing with sensitive arguments as password and tokens it is now possible to configure the job
to not put the sensitive argument in the logs.
*Rafael Mendonça França*
2019-11-24 00:20:00 +00:00
* Changes in `queue_name_prefix` of a job no longer affects all other jobs.
Fixes #37084.
*Lucas Mansur*
* Allow `Class` and `Module` instances to be serialized.
*Kevin Deisz*
2019-11-24 00:20:00 +00:00
* Log potential matches in `assert_enqueued_with` and `assert_performed_with`.
*Gareth du Plooy*
* Add `at` argument to the `perform_enqueued_jobs` test helper.
*John Crepezzi*, *Eileen Uchitelle*
* `assert_enqueued_with` and `assert_performed_with` can now test jobs with relative delay.
*Vlado Cingel*
2020-02-25 05:14:54 +00:00
* Add jitter to :exponentially_longer.
ActiveJob::Exceptions.retry_on with :exponentially_longer now uses a random amount of jitter in order to
2020-02-25 05:14:54 +00:00
prevent the [thundering herd effect](https://en.wikipedia.org/wiki/Thundering_herd_problem). Defaults to
15% (represented as 0.15) but overridable via the `:jitter` option when using `retry_on`.
2020-02-25 05:14:54 +00:00
Jitter is applied when an `Integer`, `ActiveSupport::Duration` or `:exponentially_longer`, is passed to the `wait` argument in `retry_on`.
2020-02-25 05:14:54 +00:00
```ruby
retry_on(MyError, wait: :exponentially_longer, jitter: 0.30)
2020-02-25 05:14:54 +00:00
```
*Anthony Ross*
2019-04-24 19:57:14 +00:00
Please check [6-0-stable](https://github.com/rails/rails/blob/6-0-stable/activejob/CHANGELOG.md) for previous changes.