Class: Katello::Messaging::StompConnection
- Inherits:
-
Object
- Object
- Katello::Messaging::StompConnection
- Defined in:
- app/lib/katello/messaging/stomp_connection.rb
Instance Method Summary collapse
- #close ⇒ Object
-
#initialize(settings:) ⇒ StompConnection
constructor
A new instance of StompConnection.
- #open? ⇒ Boolean
- #running? ⇒ Boolean
- #subscribe(queue_name: @queue_name, subscription_name: @subscription_name) ⇒ Object
Constructor Details
#initialize(settings:) ⇒ StompConnection
Returns a new instance of StompConnection.
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'app/lib/katello/messaging/stomp_connection.rb', line 6 def initialize(settings:) ssl_params = Stomp::SSLParams.new( key_file: settings[:ssl_key_file], cert_file: settings[:ssl_cert_file], ts_files: settings[:ssl_ca_file], fsck: false ) @config = { hosts: [ { host: settings[:broker_host], port: settings[:broker_port], ssl: ssl_params } ], logger: Rails.logger, max_reconnect_attempts: 2, start_timeout: 2, reliable: false, connect_headers: { 'accept-version': '1.2', 'host': settings[:broker_host], 'heart-beat': '30000,30000', 'client-id': settings[:client_id] } } @queue_name = settings[:queue_name] @subscription_name = settings[:subscription_name] end |
Instance Method Details
#close ⇒ Object
60 61 62 63 64 |
# File 'app/lib/katello/messaging/stomp_connection.rb', line 60 def close if open? @client.close end end |
#open? ⇒ Boolean
56 57 58 |
# File 'app/lib/katello/messaging/stomp_connection.rb', line 56 def open? @client&.open? end |
#running? ⇒ Boolean
52 53 54 |
# File 'app/lib/katello/messaging/stomp_connection.rb', line 52 def running? @client&.running && @client&.open? end |
#subscribe(queue_name: @queue_name, subscription_name: @subscription_name) ⇒ Object
38 39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'app/lib/katello/messaging/stomp_connection.rb', line 38 def subscribe(queue_name: @queue_name, subscription_name: @subscription_name) = {} ['ack'] = 'client-individual' ['durable-subscription-name'] = subscription_name if subscription_name client.subscribe(queue_name, ) do || = Katello::Messaging::ReceivedMessage.new(body: .body, headers: .headers) yield() client.ack() end Rails.logger.info("Subscribed to #{queue_name}.#{subscription_name}") end |