Sha256: 0d46f436e9d10cf82ed6959055fafd13792b50311db70b73432d0e697a08d4ca
Contents?: true
Size: 1.02 KB
Versions: 18
Compression:
Stored size: 1.02 KB
Contents
# frozen_string_literal: true require "active_support/concern" module AcidicJob module Extensions module ActiveJob extend ActiveSupport::Concern concerning :Serialization do class_methods do def serialize_with_arguments(*args, **kwargs) job_or_instantiate(*args, **kwargs).serialize end end def serialize_job(*_args, **_kwargs) serialize end end class_methods do def perform_acidicly(*args, **kwargs) raise UnsupportedExtension unless defined?(::ActiveJob) && self < ::ActiveJob::Base serialized_job = serialize_with_arguments(*args, **kwargs) key = IdempotencyKey.new(acidic_identifier).value_for(serialized_job) AcidicJob::Run.create!( staged: true, job_class: name, serialized_job: serialized_job, idempotency_key: key ) end alias_method :perform_transactionally, :perform_acidicly end end end end
Version data entries
18 entries across 18 versions & 1 rubygems