Class: RubyRabbitmqJanus::Tools::Cluster

Inherits:
Object
  • Object
show all
Includes:
Singleton
Defined in:
lib/rrj/tools/gem/cluster.rb

Overview

# Manage Janus instance

Instance Method Summary collapse

Constructor Details

#initializeCluster

Initialize object for managing each instance to Janus



12
13
14
# File 'lib/rrj/tools/gem/cluster.rb', line 12

def initialize
  @current_instance = nil
end

Instance Method Details

#create_sessionObject

Create session (just one Janus Instance)



17
18
19
20
21
22
# File 'lib/rrj/tools/gem/cluster.rb', line 17

def create_session
  @current_instance = 1
  Models::JanusInstance.create(instance: @current_instance)
rescue
  raise Errors::Tools::Cluster::CreateSession
end

#queue_admin_to(instance = nil) ⇒ Object

Specify a name to admin queue



42
43
44
45
46
47
# File 'lib/rrj/tools/gem/cluster.rb', line 42

def queue_admin_to(instance = nil)
  Tools::Config.instance.options['queues']['admin']['to'] + \
    "-#{instance.blank? ? @current_instance : instance}"
rescue
  raise Errors::Tools::Cluster::QueueAdminTo
end

#queue_to(instance = nil) ⇒ Object

Specify a name to queue



34
35
36
37
38
39
# File 'lib/rrj/tools/gem/cluster.rb', line 34

def queue_to(instance = nil)
  Tools::Config.instance.options['queues']['standard']['to'] + \
    "-#{instance.blank? ? @current_instance : instance}"
rescue
  raise Errors::Tools::Cluster::QueueTo
end

#restart_sessionObject

Restart a thread keepalive for an instance



25
26
27
28
29
30
31
# File 'lib/rrj/tools/gem/cluster.rb', line 25

def restart_session
  Models::JanusInstance.enabled.each do |ji|
    ji.send(:create_a_session_in_janus_instance)
  end
rescue
  raise Errors::Tools::Cluster::RestartInstance
end