Class: ServiceRunner
Instance Attribute Summary
#broadcast_status_updates
Instance Method Summary
collapse
#at, #store, #total
Instance Method Details
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
# File 'app/workers/service_runner.rb', line 7
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 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 => exc
ErrorReporting.error(exc, { service_class: service_class_name })
end
end
else services.each do |service|
ServiceRunner.perform_async(service)
end
end
end
|