class Dynflow::DelayedExecutors::Abstract

Attributes

core[R]

Public Class Methods

new(world, options = {}) click to toggle source
# File lib/dynflow/delayed_executors/abstract.rb, line 7
def initialize(world, options = {})
  @world = world
  @options = options
  spawn
end

Public Instance Methods

start() click to toggle source
# File lib/dynflow/delayed_executors/abstract.rb, line 13
def start
  @core.ask(:start)
end
terminate() click to toggle source
# File lib/dynflow/delayed_executors/abstract.rb, line 17
def terminate
  @core.ask(:terminate!)
end

Private Instance Methods

core_class() click to toggle source
# File lib/dynflow/delayed_executors/abstract.rb, line 23
def core_class
  raise NotImplementedError
end
spawn() click to toggle source
# File lib/dynflow/delayed_executors/abstract.rb, line 27
def spawn
  Concurrent.future.tap do |initialized|
    @core = core_class.spawn name: 'delayed-executor',
                             args: [@world, @options],
                             initialized: initialized
  end
end