- No changes.
- No changes.
-
Do not deserialize GlobalID objects that were not generated by Active Job.
Trusting any GlobaID object when deserializing jobs can allow attackers to access information that should not be accessible to them.
Fix CVE-2018-16476.
Rafael Mendonça França
- No changes.
-
Support redis-rb 4.0.
Jeremy Daer
- No changes.
- No changes.
- No changes.
- No changes.
- No changes.
- No changes.
- No changes.
- No changes.
-
Change logging instrumentation to log errors when a job raises an exception.
Fixes #26848.
Steven Bull
-
Correctly set test adapter when configure the queue adapter on a per job.
Fixes #26360.
Yuji Yaginuma
-
Removed deprecated support to passing the adapter class to
.queue_adapter
.Rafael Mendonça França
-
Removed deprecated
#original_exception
inActiveJob::DeserializationError
.Rafael Mendonça França
-
Added instance variable
@queue
to JobWrapper.This will fix issues in resque-scheduler
#job_to_hash
method, so we can use#enqueue_delayed_selection
,#remove_delayed
method in resque-scheduler smoothly.mu29
-
Yield the job instance so you have access to things like
job.arguments
on the custom logic after retries fail.DHH
-
Added declarative exception handling via
ActiveJob::Base.retry_on
andActiveJob::Base.discard_on
.Examples:
class RemoteServiceJob < ActiveJob::Base retry_on CustomAppException # defaults to 3s wait, 5 attempts retry_on AnotherCustomAppException, wait: ->(executions) { executions * 2 } retry_on ActiveRecord::Deadlocked, wait: 5.seconds, attempts: 3 retry_on Net::OpenTimeout, wait: :exponentially_longer, attempts: 10 discard_on ActiveJob::DeserializationError def perform(*args) # Might raise CustomAppException or AnotherCustomAppException for something domain specific # Might raise ActiveRecord::Deadlocked when a local db deadlock is detected # Might raise Net::OpenTimeout when the remote service is down end end
DHH
Please check 5-0-stable for previous changes.