Class: ServiceRunner
- Inherits:
-
Object
- Object
- ServiceRunner
- Includes:
- Sidekiq::Job, Workers::StatusBroadcastable
- Defined in:
- app/workers/service_runner.rb
Overview
Namespace for ServiceRunner workers.
Instance Attribute Summary
Attributes included from Workers::StatusBroadcastable
Instance Method Summary collapse
Methods included from Workers::StatusBroadcastable::Overrides
Instance Method Details
#perform(*args) ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'app/workers/service_runner.rb', line 8 def perform(*args) logger.info " ** Service execution starting, args: #{args.join(', ')}" raise 'Missing service info' if args.blank? services = [args].flatten if services.size == 1 # Perform services.each do |service_class_name| service = service_class_name.constantize.new(logger: logger) begin res = service.process store result: res.inspect logger.debug(" ** #{service_class_name} completed", service: service_class_name) rescue StandardError => e ErrorReporting.error(e, { service_class: service_class_name }) end end else # Enqueue individually services.each do |service| ServiceRunner.perform_async(service) end end end |