12345678910111213141516171819202122232425262728293031 |
- require 'delayed_job'
- module Delayed
- class Job < ::ActiveRecord::Base
- after_destroy :remove_active_job_lock
- def remove_active_job_lock
-
- return if !payload_object.is_a?(::ActiveJob::QueueAdapters::DelayedJobAdapter::JobWrapper)
-
- active_job = ::ActiveJob::Base.deserialize(payload_object.job_data)
-
- return if !active_job.is_a?(HasActiveJobLock)
- begin
- active_job.arguments = ::ActiveJob::Arguments.deserialize(active_job.instance_variable_get(:@serialized_arguments))
- rescue => e
- active_job.arguments = nil
- Rails.logger.error e
- end
-
- active_job.release_active_job_lock!
- end
- end
- end
|