Module: LontaraUtilities::RMQ::Server
- Defined in:
- lib/lontara_utilities/rmq/server.rb,
lib/lontara_utilities/rmq/server/subscriber.rb,
lib/lontara_utilities/rmq/server/rpc_consumer.rb
Overview
Base module for RMQ server.
Defined Under Namespace
Classes: RPCConsumer, Subscriber
Class Method Summary collapse
-
.start(url:, queue:, server: 'RPCConsumer', **options) ⇒ Object
Server interface for RMQ Publisher or RPC Publisher.
Class Method Details
.start(url:, queue:, server: 'RPCConsumer', **options) ⇒ Object
Server interface for RMQ Publisher or RPC Publisher.
Start server by giving url and queue name. Parameter server must be ‘RPCConsumer` or `Subscriber`. If parameter not defined, default is `RPCConsumer`.
**Use ‘Subscriber` if no need to reply the request’s responses.**
Options params is: ‘default_exchange: (default: true)`
That option is changing the way Connection object is created. If set to ‘false`, connection object didn’t create exchange, also connection.exchange property will be ‘nil`.
These options only applicable if ‘default_exchange` is `false`, and `server` is `RPCConsumer` (exchange created inside consumer).
- `exchange:`
- `exchange_type: (default: :direct)`
Be aware of this conditions:
-
Don’t leave ‘exchange` where `default_exchange` is `false`, or Server object will raise error.
27 28 29 30 31 32 33 34 35 36 |
# File 'lib/lontara_utilities/rmq/server.rb', line 27 def start(url:, queue:, server: 'RPCConsumer', **) parameter_validator(server, ) server = Object.const_get("LontaraUtilities::RMQ::Server::#{server}") server_opts = %i[exchange exchange_type] connection = Connection.new(url:, **.except(*server_opts)) server.new(connection, queue:, **.slice(*server_opts)).start end |