Sha256: 1d0a71013055528514c802ab1c60a2b6b5bd5d48e7698b2b068a90013c649c80
Contents?: true
Size: 1.09 KB
Versions: 1
Compression:
Stored size: 1.09 KB
Contents
module JobNotifier module Notifier extend ActiveSupport::Concern included do def perform(*args) result = perform_with_feedback(*args) save_success_feedback(result) rescue JobNotifier::Error::Validation => ex save_error_feedback(ex.error) rescue StandardError => ex save_error_feedback("unknown") raise ex end def save_error_feedback(error) JobNotifier::Job.update_feedback(job_id, error, :failed) end def save_success_feedback(data) JobNotifier::Job.update_feedback(job_id, data, :finished) end before_enqueue do |job| if job.respond_to?(:perform_with_feedback) identifier = job.arguments.shift raise JobNotifier::Error::InvalidIdentifier.new if identifier.blank? JobNotifier::Job.create!( identifier: (identifier.to_sym == :without_owner ? nil : identifier), job_id: job.job_id, job_class: self.class.name ) end end end end end ActiveJob::Base.send(:include, JobNotifier::Notifier)
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
job_notifier-1.5.0 | lib/job_notifier/notifier.rb |