Class EventBus
source code
object --+
|
EventBus
This class represents a distributed lightweight event bus which can
encompass multiple vert.x instances. It is very useful for otherwise
isolated vert.x application instances to communicate with each other.
Messages sent over the event bus are JSON objects represented as Ruby
Hash instances.
The event bus implements a distributed publish / subscribe
network.
Messages are sent to an address.
There can be multiple handlers registered against that address. Any
handlers with a matching name will receive the message irrespective of
what vert.x application instance and what vert.x instance they are
located in.
All messages sent over the bus are transient. On event of failure of
all or part of the event bus messages may be lost. Applications should be
coded to cope with lost messages, e.g. by resending them, and making
application services idempotent.
The order of messages received by any specific handler from a specific
sender will match the order of messages sent from that sender.
When sending a message, a reply handler can be provided. If so, it
will be called when the reply from the receiver has been received.
When receiving a message in a handler the received object is an
instance of EventBus::Message - this contains the actual Hash of the
message plus a reply method which can be used to reply to it.
|
|
|
send(address,
message,
reply_handler=None)
Send a message on the event bus |
source code
|
|
|
|
|
send_or_pub(send,
address,
message,
reply_handler=None) |
source code
|
|
|
|
|
register_simple_handler(local_only=False,
handler=None)
Registers a handler against a uniquely generated address, the address
is returned as the id received by the handler. |
source code
|
|
|
|
|
|
send(address,
message,
reply_handler=None)
Static Method
| source code
|
Send a message on the event bus
Keyword arguments:
- Parameters:
address - the address to publish to
message - The message to send
reply_handler - An optional reply handler. It will be called when the reply from
a receiver is received.
|
Publish a message on the event bus
Keyword arguments:
- Parameters:
address - the address to publish to
message - The message to publish
|
register_handler(address,
local_only=False,
handler=None)
Static Method
| source code
|
Register a handler.
Keyword arguments:
- Parameters:
address - the address to register for. Any messages sent to that address
will be received by the handler. A single handler can be
registered against many addresses.
local_only - if True then handler won't be propagated across cluster
handler - The handler
- Returns:
- id of the handler which can be used in
EventBus.unregister_handler
|
register_simple_handler(local_only=False,
handler=None)
Static Method
| source code
|
Registers a handler against a uniquely generated address, the address
is returned as the id received by the handler. A single handler can be
registered against many addresses.
Keyword arguments:
- Parameters:
local_only - If Rrue then handler won't be propagated across cluster
handler - The handler
- Returns:
- id of the handler which can be used in
EventBus.unregister_handler
|
unregister_handler(handler_id)
Static Method
| source code
|
Unregisters a handler
Keyword arguments:
- Parameters:
handler_id - the id of the handler to unregister. Returned from
EventBus.register_handler
|