Sha256: c69207527865075771b24591b17732ff9a69b905ec97929d458a84cd03d48e48
Contents?: true
Size: 1.27 KB
Versions: 2
Compression:
Stored size: 1.27 KB
Contents
module ActiveJobLog module LogExt extend ActiveSupport::Concern included do class_attribute :disabled_log before_enqueue { |job| enqueue_job(job) } before_perform { |job| execute_job(job) } after_perform { |job| finish_job(job) } rescue_from(Exception) do |exception| fail_job(exception) raise exception end end class_methods do def disable_job_logs self.disabled_log = true end end def enqueue_job(job) update_job!(job.job_id, :queued, init_params(job)) end def execute_job(job) update_job!(job.job_id, :pending, init_params(job)) end def finish_job(job) update_job!(job.job_id, :finished) end def fail_job(exception) update_job!( job_id, :failed, error: exception.message, stack_trace: exception.backtrace ) end def update_job!(job_id, status, params = {}) return if self.class.disabled_log Job.update_job!(job_id, status, params) end def init_params(job) { job_class: self.class.name, params: job.arguments, executions: job.try(:executions), queue_name: job.queue_name } end end end ActiveJob::Base.include ActiveJobLog::LogExt
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
active_job_log-3.0.0 | lib/active_job_log/log_ext.rb |
active_job_log-2.1.0 | lib/active_job_log/log_ext.rb |