Sha256: a7d3202fc3233e53cf4d86055356eb2320d1df78e7bc3a2bc6f051dcc0d34b1a
Contents?: true
Size: 983 Bytes
Versions: 1
Compression:
Stored size: 983 Bytes
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, job_id: job.job_id) end end end end end ActiveJob::Base.include(JobNotifier::Notifier)
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
job_notifier-0.1.0 | lib/job_notifier/notifier.rb |