Module: Ruote::Synchronize
- Defined in:
- lib/ruote/synchronize.rb,
lib/ruote/synchronize/broker.rb,
lib/ruote/synchronize/version.rb,
lib/ruote/synchronize/participant.rb
Overview
A process synchronisation module for Ruote.
Will define a synchronize :key => "my_unique_key"
participant.
You can use it in two processes by defining the same synchronisation key.
The first process to reach the synchronization will wait for the other one.
It works by storing the first workitem along with the key. When the second process reaches synchronize, it will find the previous workitem, receive it (allowing the first process to proceed), and reply immediately.
You must use a key that you know will NEVER be used outside of the two process you want to synchronize.
Pay attention to multiple launches (if your process is launched by an HTTP request for example). If three processes with the same key are launched, the two first will be synchronized and the last one will be left hanging.
Defined Under Namespace
Classes: Broker, Participant, UndefinedKey
Constant Summary collapse
- VERSION =
'0.1.0'
Class Method Summary collapse
-
.setup(dashboard) ⇒ void
Will register the
synchronize
storage type and participant.
Class Method Details
.setup(dashboard) ⇒ void
This method returns an undefined value.
Will register the synchronize
storage type and participant.
You need to execute this method before launching any processes.
46 47 48 49 50 51 |
# File 'lib/ruote/synchronize.rb', line 46 def self.setup(dashboard) dashboard.context.storage.add_type 'synchronize' dashboard.register_participant 'synchronize', Ruote::Synchronize::Participant end |