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