Class: CloudCrowd::Dispatcher
- Inherits:
-
Object
- Object
- CloudCrowd::Dispatcher
- Defined in:
- lib/cloud_crowd/dispatcher.rb
Overview
The dispatcher is responsible for distributing work_units to the worker nodes.
It automatically performs the distribution on a set schedule, but can also be signaled to perform distribution immediately
Instance Method Summary collapse
-
#distribute! ⇒ Object
Sends a signal to the distribution thread.
-
#initialize(distribution_interval) ⇒ Dispatcher
constructor
Starts distributing jobs every “distribution_interval” seconds.
Constructor Details
#initialize(distribution_interval) ⇒ Dispatcher
Starts distributing jobs every “distribution_interval” seconds
11 12 13 14 15 |
# File 'lib/cloud_crowd/dispatcher.rb', line 11 def initialize(distribution_interval) @mutex = Mutex.new @awaken = ConditionVariable.new distribute_periodically(distribution_interval) end |
Instance Method Details
#distribute! ⇒ Object
Sends a signal to the distribution thread. If it’s asleep, it will wake up and perform a distribution.
19 20 21 22 23 |
# File 'lib/cloud_crowd/dispatcher.rb', line 19 def distribute! @mutex.synchronize do @awaken.signal end end |