Sha256: 6de888afec114f27affbcc6d5fb57842a0a1369dd2cc92dab86430b6f17715cf
Contents?: true
Size: 1.14 KB
Versions: 1
Compression:
Stored size: 1.14 KB
Contents
# frozen_string_literal: true require "active_support/concern" module AcidicJob module Extensions module ActionMailer extend ActiveSupport::Concern def deliver_acidicly(_options = {}, unique_by: nil) job_class = ::ActionMailer::MailDeliveryJob job_args = [@mailer_class.name, @action.to_s, "deliver_now", @params, *@args] # for Sidekiq, this depends on the Sidekiq::Serialization extension serialized_job = job_class.new(job_args).serialize acidic_identifier = job_class.respond_to?(:acidic_identifier) ? job_class.acidic_identifier : :job_id # use either [1] provided uniqueness constraint or [2] computed key key = if unique_by IdempotencyKey.generate(unique_by: unique_by, job_class: job_class.name) else IdempotencyKey.new(acidic_identifier).value_for(serialized_job) end AcidicJob::Run.create!( staged: true, job_class: job_class.name, serialized_job: serialized_job, idempotency_key: key ) end alias deliver_transactionally deliver_acidicly end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
acidic_job-1.0.0.pre11 | lib/acidic_job/extensions/action_mailer.rb |