Class: RubyRabbitmqJanus::Janus::Transactions::Session

Inherits:
Transaction
  • Object
show all
Defined in:
lib/rrj/janus/transactions/session.rb

Overview

# Manage a transaction

Manage a transaction with message if contains a session identifier

Author:

Direct Known Subclasses

Admin

Instance Method Summary collapse

Constructor Details

#initialize(exclusive, session) ⇒ Session

Initialize a transaction with handle

Parameters:

  • session (Fixnum)

    Use a session identifier for created message



16
17
18
19
# File 'lib/rrj/janus/transactions/session.rb', line 16

def initialize(exclusive, session)
  super(session)
  @exclusive = exclusive
end

Instance Method Details

#connect { ... } ⇒ Object

Opening a short transaction with rabbitmq and close when is ending

Yields:

  • Send a message to Janus



24
25
26
27
28
29
# File 'lib/rrj/janus/transactions/session.rb', line 24

def connect
  rabbit.transaction_short do
    choose_queue
    yield
  end
end

#publish_message(type, options = {}) ⇒ Object

Publish a message to “standard” RabbitMQ queue.



32
33
34
35
36
# File 'lib/rrj/janus/transactions/session.rb', line 32

def publish_message(type, options = {})
  msg = Janus::Messages::Standard.new(type, opts.merge!(options))
  response = read_response(publisher.publish(msg))
  Janus::Responses::Standard.new(response)
end