Class: RubyRabbitmqJanus::RRJTask

Inherits:
RRJ
  • Object
show all
Defined in:
lib/rrj/task.rb

Overview

# RubyRabbitmqJanus - Task

This class is used with rake task.

Direct Known Subclasses

RRJTaskAdmin

Instance Attribute Summary

Attributes inherited from RRJ

#session

Instance Method Summary collapse

Methods inherited from RRJ

#cleanup_connection

Constructor Details

#initializeRRJTask

Returns a new instance of RRJTask.



12
13
14
15
16
17
18
# File 'lib/rrj/task.rb', line 12

def initialize
  Tools::Log.instance
  Tools::Config.instance
  Tools::Requests.instance
rescue
  raise Errors::RRJTask::Initialize
end

Instance Method Details

#start_transaction(options = {}) ⇒ Object

Start a transaction with Janus. Request use session_id information.

Examples:

Get Janus information

@rrj.start_transaction do |transaction|
  response = transaction.publish_message('base::info').to_hash
end

Parameters:

  • options (Hash) (defaults to: {})

    Give a session number for use another session in Janus

Since:

  • 2.1.0



31
32
33
34
35
36
37
# File 'lib/rrj/task.rb', line 31

def start_transaction(options = {})
  transaction = Janus::Transactions::Session.new(true,
                                                 options['session_id'])
  transaction.connect { yield(transaction) }
rescue
  raise Errors::RRJ::StartTransaction.new(true, options)
end

#start_transaction_handle(exclusive = true, options = {}) ⇒ Object

Create a transaction between apps and janus with a handle

Since:

  • 2.1.0



42
43
44
45
46
47
48
49
50
51
52
# File 'lib/rrj/task.rb', line 42

def start_transaction_handle(exclusive = true, options = {})
  janus = session_instance(options)
  handle = 0 # Create always a new handle
  transaction = Janus::Transactions::Handle.new(exclusive,
                                                janus.session,
                                                handle,
                                                janus.instance)
  transaction.connect { yield(transaction) }
rescue
  raise Errors::RRJTask::StartTransactionHandle.new(exclusive, options)
end