Fix Active Job log message to correctly report a job failed to enqueue when the adapter raises an ActiveJob::EnqueueError
This commit is contained in:
parent
fea9ad3337
commit
b1b7debaa3
@ -1,3 +1,8 @@
|
||||
* Fix Active Job log message to correctly report a job failed to enqueue
|
||||
when the adapter raises an `ActiveJob::EnqueueError`.
|
||||
|
||||
*Ben Sheldon*
|
||||
|
||||
* Add `after_discard` method.
|
||||
|
||||
This method lets job authors define a block which will be run when a job is about to be discarded. For example:
|
||||
|
@ -8,7 +8,7 @@ class LogSubscriber < ActiveSupport::LogSubscriber # :nodoc:
|
||||
|
||||
def enqueue(event)
|
||||
job = event.payload[:job]
|
||||
ex = event.payload[:exception_object]
|
||||
ex = event.payload[:exception_object] || job.enqueue_error
|
||||
|
||||
if ex
|
||||
error do
|
||||
@ -28,7 +28,7 @@ def enqueue(event)
|
||||
|
||||
def enqueue_at(event)
|
||||
job = event.payload[:job]
|
||||
ex = event.payload[:exception_object]
|
||||
ex = event.payload[:exception_object] || job.enqueue_error
|
||||
|
||||
if ex
|
||||
error do
|
||||
|
@ -245,6 +245,20 @@ def test_enqueue_in_job_logging
|
||||
skip
|
||||
end
|
||||
|
||||
def test_enqueue_log_when_enqueue_error_is_set
|
||||
EnqueueErrorJob.disable_test_adapter
|
||||
|
||||
EnqueueErrorJob.perform_later
|
||||
assert_match(/Failed enqueuing EnqueueErrorJob to EnqueueError\(default\): ActiveJob::EnqueueError \(There was an error enqueuing the job\)/, @logger.messages)
|
||||
end
|
||||
|
||||
def test_enqueue_at_log_when_enqueue_error_is_set
|
||||
EnqueueErrorJob.disable_test_adapter
|
||||
|
||||
EnqueueErrorJob.set(wait: 1.hour).perform_later
|
||||
assert_match(/Failed enqueuing EnqueueErrorJob to EnqueueError\(default\): ActiveJob::EnqueueError \(There was an error enqueuing the job\)/, @logger.messages)
|
||||
end
|
||||
|
||||
def test_for_tagged_logger_support_is_consistent
|
||||
set_logger ::Logger.new(nil)
|
||||
OverriddenLoggingJob.perform_later "Dummy"
|
||||
|
Loading…
Reference in New Issue
Block a user