Sha256: a8f7ec3b9ff2221436af830f8866361887797e0e0ed77fa08571a0292607ca07
Contents?: true
Size: 1.25 KB
Versions: 1
Compression:
Stored size: 1.25 KB
Contents
# frozen_string_literal: true require "active_support/concern" module AcidicJob module Extensions module ActionMailer extend ActiveSupport::Concern def deliver_acidicly(_options = {}, idempotency_key: nil, 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 key, [2] provided uniqueness constraint, or [3] computed key key = if idempotency_key idempotency_key elsif 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.pre10 | lib/acidic_job/extensions/action_mailer.rb |