Class: Fme::EnterpriseBus::Jobs::BusJob

Inherits:
ActiveJob::Base
  • Object
show all
Defined in:
lib/fme/enterprise_bus/jobs/bus_job.rb

Instance Method Summary collapse

Instance Method Details

#matching_job_hashes(message) ⇒ Object



23
24
25
26
27
# File 'lib/fme/enterprise_bus/jobs/bus_job.rb', line 23

def matching_job_hashes(message)
  Jobs.registered_jobs.select do |message_pattern:, **|
    (message_pattern.with_indifferent_access.to_a - message.as_json.to_a).empty?
  end
end

#matching_jobs(message) ⇒ Object



17
18
19
20
21
# File 'lib/fme/enterprise_bus/jobs/bus_job.rb', line 17

def matching_jobs(message)
  matching_job_hashes(message).map do |job_klass:, **|
    job_klass
  end
end

#perform(message) ⇒ Object



7
8
9
# File 'lib/fme/enterprise_bus/jobs/bus_job.rb', line 7

def perform(message)
  run_in_matching_jobs message
end

#run_in_matching_jobs(message) ⇒ Object



11
12
13
14
15
# File 'lib/fme/enterprise_bus/jobs/bus_job.rb', line 11

def run_in_matching_jobs(message)
  matching_jobs(message).each do |job|
    job.perform_later message
  end
end