Module: Julewire::ActiveJob::JobExecution

Defined in:
lib/julewire/active_job/job_execution.rb

Class Method Summary collapse

Class Method Details

.call(job, configuration: Configuration.new) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/julewire/active_job/job_execution.rb', line 9

def call(job, configuration: Configuration.new, &)
  carrier = carrier_for(job)
  return perform_job(job, configuration, &) unless configuration.propagation?

  result = Julewire::Core::Propagation::Carrier.extract_result(
    carrier,
    key: configuration.carrier_key,
    max_bytes: configuration.carrier_max_bytes
  )
  record_carrier_restore_failure(result)

  Julewire::Core::Propagation.restore(result.envelope, owned: true) do
    perform_job(job, configuration, &)
  end
end