Class: Operationable::Runners::Serial

Inherits:
Base
  • Object
show all
Defined in:
lib/operationable/runners/serial.rb

Instance Attribute Summary

Attributes inherited from Base

#callbacks, #params, #record, #result, #user

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Base

#initialize

Constructor Details

This class inherits a constructor from Operationable::Runners::Base

Class Method Details

.call(options, props) ⇒ Object



13
14
15
16
# File 'lib/operationable/runners/serial.rb', line 13

def self.call(options, props)
  instance = options[:callback_class_name].constantize.new(props)
  options[:callback_names].each { |method_name| instance.method(method_name).call }
end

Instance Method Details

#optionsObject

TODO: No sense, due to performance deterioration, better use postgres/mysql database def self.call(options, props)

instance = options[:callback_class_name].constantize.new(props)

options[:callback_names].each do |method_name|
  ::Operationable::Persister.around_call(options[:op_id], method_name, -> {
    instance.method(method_name).call
  })
end

end



29
30
31
32
33
34
35
# File 'lib/operationable/runners/serial.rb', line 29

def options
  { type: 'serial',
    callback_class_name: callback_class_name,
    callback_names: callback_names,
    queue: queue,
    op_id: persist_operation.id }
end

#processObject



9
10
11
# File 'lib/operationable/runners/serial.rb', line 9

def process
  (queue.blank? ? self.class : OperationJob.method(perform_method)).call(options, props)
end

#runObject



5
6
7
# File 'lib/operationable/runners/serial.rb', line 5

def run
  process
end