Class: Pione::Agent::TaskWorkerBroker
- Inherits:
-
BasicAgent
- Object
- PioneObject
- BasicAgent
- Pione::Agent::TaskWorkerBroker
- Defined in:
- lib/pione/agent/task-worker-broker.rb
Overview
TaskWorkerBroker
is an agent for providing task workers to tuple spaces.
Instance Attribute Summary
Attributes inherited from BasicAgent
Instance Method Summary collapse
-
#initialize(model) ⇒ TaskWorkerBroker
constructor
instance methods.
- #transit_to_check_task_worker_life ⇒ Object
- #transit_to_check_tuple_space ⇒ Object
- #transit_to_count_tuple_space ⇒ Object
-
#transit_to_init ⇒ Object
transitions.
- #transit_to_provide_task_worker ⇒ Object
- #transit_to_sleep ⇒ Object
-
#transit_to_terminate ⇒ Object
Send bye messages to tuple spaces when the agent is terminated.
Methods inherited from BasicAgent
agent_type, inherited, set_agent_type, #start, #start!, #states, #terminate, #terminated?, #transit, #wait_until, #wait_until_after, #wait_until_before, #wait_until_terminated
Methods included from StateTransitionSingletonMethod
#chain, #define_exception_handler, #define_transition, #exception_handler, #start, #transition_chain
Constructor Details
#initialize(model) ⇒ TaskWorkerBroker
instance methods
11 12 13 14 15 |
# File 'lib/pione/agent/task-worker-broker.rb', line 11 def initialize(model) super() @model = model @provider = Global.task_worker_provider.new(model) end |
Instance Method Details
#transit_to_check_task_worker_life ⇒ Object
68 69 70 71 |
# 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 ⇒ Object
56 57 58 |
# 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 ⇒ Object
48 49 50 |
# File 'lib/pione/agent/task-worker-broker.rb', line 48 def transit_to_count_tuple_space @model.tuple_space.size end |
#transit_to_init ⇒ Object
transitions
44 45 46 |
# 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 ⇒ Object
52 53 54 |
# File 'lib/pione/agent/task-worker-broker.rb', line 52 def transit_to_provide_task_worker @provider.provide end |
#transit_to_sleep ⇒ Object
60 61 62 63 64 65 66 |
# 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 ⇒ Object
Send bye messages to tuple spaces when the agent is terminated.
74 75 76 77 78 79 80 81 |
# 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 |