class Pione::Agent::TaskWorkerBroker

‘TaskWorkerBroker` is an agent for providing task workers to tuple spaces.

Public Class Methods

new(model) click to toggle source

instance methods

Calls superclass method Pione::Agent::BasicAgent::new
# File lib/pione/agent/task-worker-broker.rb, line 11
def initialize(model)
  super()
  @model = model
  @provider = Global.task_worker_provider.new(model)
end

Public Instance Methods

transit_to_check_task_worker_life() click to toggle source
# File lib/pione/agent/task-worker-broker.rb, line 68
def transit_to_check_task_worker_life
  @model.delete_dead_task_workers
  sleep Global.task_worker_broker_short_sleep_time
end
transit_to_check_tuple_space() click to toggle source
# File lib/pione/agent/task-worker-broker.rb, line 56
def transit_to_check_tuple_space
  @model.check_tuple_space
end
transit_to_count_tuple_space() click to toggle source
# File lib/pione/agent/task-worker-broker.rb, line 48
def transit_to_count_tuple_space
  @model.tuple_space.size
end
transit_to_init() click to toggle source

transitions

# File lib/pione/agent/task-worker-broker.rb, line 44
def transit_to_init
  Log::SystemLog.info "Task worker broker starts the activity."
end
transit_to_provide_task_worker() click to toggle source
# File lib/pione/agent/task-worker-broker.rb, line 52
def transit_to_provide_task_worker
  @provider.provide
end
transit_to_sleep() click to toggle source
# File lib/pione/agent/task-worker-broker.rb, line 60
def transit_to_sleep
  if @model.tuple_space.size == 0 or @model.excess_task_workers == 0
    sleep Global.task_worker_broker_long_sleep_time
  else
    sleep Global.task_worker_broker_short_sleep_time
  end
end
transit_to_terminate() click to toggle source

Send bye messages to tuple spaces when the agent is terminated.

# File lib/pione/agent/task-worker-broker.rb, line 74
def transit_to_terminate
  @model.tuple_space_lock.synchronize do
    @model.tuple_spaces.each do |tuple_space|
      Util.ignore_exception {timeout(1) {tuple_space.bye}}
    end
  end
  Log::SystemLog.info "Task worker broker ends the activity."
end