Sha256: e06b385139681ce3c5cc76a83e3219a085d1adac158ccd727281382d9de9e42a
Contents?: true
Size: 1003 Bytes
Versions: 9
Compression:
Stored size: 1003 Bytes
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) AcidicJob::Run.create!( staged: true, job_class: name, serialized_job: serialized_job, idempotency_key: IdempotencyKey.value_for(serialized_job) ) end alias_method :perform_transactionally, :perform_acidicly end end end end
Version data entries
9 entries across 9 versions & 1 rubygems