ruby_rabbitmq_janus 2.2.0.pre.170 → 2.2.0.pre.173

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e1c4ad646df955dcba29567bc0040c4655268c02
4
- data.tar.gz: 4bd4bc2b5057724cd9cb7a6282b95ee9ac4b6da0
3
+ metadata.gz: a1a3ff1ce8aa3114b1460ae38c996f1f6b1ff448
4
+ data.tar.gz: 8fcd100ec3e8a2b63e9c5a9f336692387aec9578
5
5
  SHA512:
6
- metadata.gz: a17d8376cce526d6dd9f222db2b9dc75905d8c8be912246a28b87767a3a39e878e988b5ed0fd991e6b180f1333ffbd348453edc47b360240452b895ea74c2829
7
- data.tar.gz: 7862d117dc70656388faf2524c6c57b5e97e27fec825bffcd510648c195b8a2753ac9e855d8f0993438843513615b682e096e96ef5fc4adb9231de3c8b4dacb1
6
+ metadata.gz: 6af6ba692c3978495df2c4ed85a577c781dcece26f97bcd299d66027fa1abe3e1a388f28eb74f63ef300c46253e0b045fd6004c939c186c513a92478aed2c4b3
7
+ data.tar.gz: 7206fd1211726ade7c54c211427da91de8de09b751126648130e1df1c7af101e62bd1da93ed33b867e678180e416c692c7e541621b8dcfabacfe687a879b9919
data/Rakefile CHANGED
@@ -3,6 +3,16 @@
3
3
  require 'bundler/gem_tasks'
4
4
  require 'rspec/core/rake_task'
5
5
 
6
- RSpec::Core::RakeTask.new(:spec)
6
+ # Exclude all spec with type :thread
7
+ RSpec::Core::RakeTask.new(:spec) do |t|
8
+ t.rspec_opts = '--tag ~type:thread'
9
+ end
10
+
11
+ # Include just spec with type :thread
12
+ RSpec::Core::RakeTask.new(:concurrency) do |t|
13
+ t.rspec_opts = '--tag type:thread'
14
+ end
7
15
 
8
16
  task default: :spec
17
+
18
+ task thread: :concurrency
@@ -17,7 +17,6 @@ module RubyRabbitmqJanus
17
17
  end
18
18
 
19
19
  require 'rrj/errors/janus/processus/concurency'
20
- require 'rrj/errors/janus/processus/event'
21
20
 
22
21
  require 'rrj/errors/janus/messages/message'
23
22
  require 'rrj/errors/janus/messages/admin'
@@ -6,7 +6,7 @@ module RubyRabbitmqJanus
6
6
  # Define a super class for all error in Janus::Concurency class
7
7
  class BaseConcurency < RubyRabbitmqJanus::Errors::BaseJanus
8
8
  def initialize(message)
9
- super "[Concurency] #{message}"
9
+ super "[Concurency]#{message}", :fatal
10
10
  end
11
11
  end
12
12
 
@@ -21,3 +21,6 @@ module RubyRabbitmqJanus
21
21
  end
22
22
  end
23
23
  end
24
+
25
+ require 'rrj/errors/janus/processus/keepalive'
26
+ require 'rrj/errors/janus/processus/event'
@@ -1,14 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  # :reek:IrresponsibleModule
4
- #
5
- # rubocop:disable Metrics/LineLength
6
- # rubocop:disable Style/Documentation
7
4
 
8
5
  module RubyRabbitmqJanus
9
6
  module Errors
10
7
  module Janus
11
- # Define a super class for all error in Janus::Concurency::Keepalive
12
8
  class BaseKeepaliveInitializer < BaseKeepalive
13
9
  def initialize(message)
14
10
  super "[Initializer] #{message}"
@@ -16,40 +12,38 @@ module RubyRabbitmqJanus
16
12
  end
17
13
 
18
14
  module KeepaliveInitializer
19
- # Error for Janus::Concurency::Keepalive#initialize
20
15
  class Initializer < RubyRabbitmqJanus::Errors::Janus::BaseKeepaliveInitializer
21
- def initializer
16
+ def initialize
22
17
  super 'Error keepalive initializer'
23
18
  end
24
19
  end
25
20
 
26
- # Error for Janus::Concurency::Keepalive#session
27
21
  class Session < RubyRabbitmqJanus::Errors::Janus::BaseKeepaliveInitializer
28
- def initializer
22
+ def initialize
29
23
  super 'Error return session number'
30
24
  end
31
25
  end
32
26
 
33
27
  class Thread < RubyRabbitmqJanus::Errors::Janus::BaseKeepaliveInitializer
34
- def initializer
28
+ def initialize
35
29
  super 'Error for get Object Thread ID'
36
30
  end
37
31
  end
38
32
 
39
33
  class ThreadStart < RubyRabbitmqJanus::Errors::Janus::BaseKeepaliveInitializer
40
- def initializer
34
+ def initialize
41
35
  super 'Error for starting timer in thread'
42
36
  end
43
37
  end
44
38
 
45
39
  class ThreadStop < RubyRabbitmqJanus::Errors::Janus::BaseKeepaliveInitializer
46
- def initializer
40
+ def initialize
47
41
  super 'Error for stoping timer in thread'
48
42
  end
49
43
  end
50
44
 
51
45
  class ThreadDelete < RubyRabbitmqJanus::Errors::Janus::BaseKeepaliveInitializer
52
- def initializer
46
+ def initialize
53
47
  super 'Error for destroy thread'
54
48
  end
55
49
  end
@@ -57,5 +51,3 @@ module RubyRabbitmqJanus
57
51
  end
58
52
  end
59
53
  end
60
- # rubocop:enable Style/Documentation
61
- # rubocop:enable Metrics/LineLength
@@ -11,6 +11,44 @@ module RubyRabbitmqJanus
11
11
  super "[Thread] #{message}"
12
12
  end
13
13
  end
14
+
15
+ module KeepaliveThread
16
+ class Initializer < RubyRabbitmqJanus::Errors::Janus::BaseKeepaliveThread
17
+ def initialize
18
+ super 'Error for initialize Keepalive Thread'
19
+ end
20
+ end
21
+
22
+ class InitializeJanusSession < RubyRabbitmqJanus::Errors::Janus::BaseKeepaliveThread
23
+ def initialize
24
+ super 'Error when initialize message in keepalive thread'
25
+ end
26
+ end
27
+
28
+ class RestartSession < RubyRabbitmqJanus::Errors::Janus::BaseKeepaliveThread
29
+ def initialize
30
+ super 'Error when restart session'
31
+ end
32
+ end
33
+
34
+ class Start < RubyRabbitmqJanus::Errors::Janus::BaseKeepaliveThread
35
+ def initialize
36
+ super 'Error when start a loop for sending keepalive message'
37
+ end
38
+ end
39
+
40
+ class Kill < RubyRabbitmqJanus::Errors::Janus::BaseKeepaliveThread
41
+ def initialize
42
+ super 'Error when killing thread'
43
+ end
44
+ end
45
+
46
+ class InstanceIsDown < RubyRabbitmqJanus::Errors::Janus::BaseKeepaliveThread
47
+ def initialize
48
+ super 'Error when instance is down'
49
+ end
50
+ end
51
+ end
14
52
  end
15
53
  end
16
54
  end
@@ -5,12 +5,43 @@
5
5
  module RubyRabbitmqJanus
6
6
  module Errors
7
7
  module Janus
8
- # Define a super class for all error in Janus::Concurency::Keepalive
9
8
  class BaseKeepaliveTimer < BaseKeepalive
10
9
  def initialize(message)
11
10
  super "[Timer] #{message}"
12
11
  end
13
12
  end
13
+
14
+ module KeepaliveTimer
15
+ class Initializer < RubyRabbitmqJanus::Errors::Janus::BaseKeepaliveTimer
16
+ def initialize
17
+ super 'Error for initialize Keepalive Timer'
18
+ end
19
+ end
20
+
21
+ class LoopKeepalive < RubyRabbitmqJanus::Errors::Janus::BaseKeepaliveTimer
22
+ def initialize
23
+ super 'Loop for create timer in Keepalive Thread is failed'
24
+ end
25
+ end
26
+
27
+ class Session < RubyRabbitmqJanus::Errors::Janus::BaseKeepaliveTimer
28
+ def initialize
29
+ super 'Timeout for get session number in keepalive request'
30
+ end
31
+ end
32
+
33
+ class StopTimer < RubyRabbitmqJanus::Errors::Janus::BaseKeepaliveTimer
34
+ def initialize
35
+ super 'Error when timer to Keepalive Thread stop'
36
+ end
37
+ end
38
+
39
+ class StartTimer < RubyRabbitmqJanus::Errors::Janus::BaseKeepaliveTimer
40
+ def initialize
41
+ super 'Error when timer to Keepalive Thread start'
42
+ end
43
+ end
44
+ end
14
45
  end
15
46
  end
16
47
  end
@@ -26,7 +26,7 @@ module RubyRabbitmqJanus
26
26
  def self.thread(thread)
27
27
  ObjectSpace._id2ref(thread)
28
28
  rescue RangeError
29
- puts "No thread with ID : #{thread}"
29
+ Tools::Log.instance.fatal "No thread with ID : #{thread}"
30
30
  end
31
31
 
32
32
  # Give a session Integer his gem is instantiate.
@@ -6,7 +6,12 @@ module RubyRabbitmqJanus
6
6
  module Janus
7
7
  module Concurrencies
8
8
  # Manage message used for keepalive thread
9
+ #
10
+ # @attribute [r] instance
11
+ # @return [String] ID to Janus Instance
9
12
  class KeepaliveMessage
13
+ attr_reader :instance
14
+
10
15
  def initialize(instance)
11
16
  @instance = instance
12
17
  end
@@ -5,9 +5,12 @@
5
5
  module RubyRabbitmqJanus
6
6
  module Janus
7
7
  module Concurrencies
8
- # Object thread
8
+ # Object thread for manage keep a live with Janus Instance
9
+ #
10
+ # @!attribute [r] session
11
+ # @return [Integer] Number to session linked to Janus Instance
9
12
  class KeepaliveThread < Thread
10
- attr_reader :timer, :instance, :session
13
+ attr_reader :timer, :session
11
14
 
12
15
  def initialize(instance, rabbit, &block)
13
16
  @publisher = @session = nil
@@ -15,6 +18,8 @@ module RubyRabbitmqJanus
15
18
  @timer = KeepaliveTimer.new
16
19
  @message = KeepaliveMessage.new(instance)
17
20
  super(&block)
21
+ rescue
22
+ raise Errors::Janus::KeepaliveThread::Initializer
18
23
  end
19
24
 
20
25
  # Initialize a transaction with Janus Instance.
@@ -22,41 +27,66 @@ module RubyRabbitmqJanus
22
27
  def initialize_janus_session
23
28
  @publisher = publisher
24
29
  @session = response_session
30
+ rescue
31
+ raise Errors::Janus::KeepaliveThread::InitializeJanusSession
25
32
  end
26
33
 
27
34
  # Restart session
28
35
  def restart_session
29
36
  Tools::Log.instance.warn 'Restart session ...'
30
- janus = find_model
31
37
  @session = response_session
32
38
  response_keepalive
33
- janus.set(session: @session)
39
+ find_model.set(session: @session)
40
+ rescue
41
+ raise Errors::Janus::KeepaliveThread::RestartSession
34
42
  end
35
43
 
36
44
  # Start a timer for TTL
37
45
  def start
38
- @timer.loop_keepalive { response_keepalive }
46
+ @timer.loop_keepalive do
47
+ Tools::Log.instance.info 'Send keepalive to instance ' \
48
+ "#{@message.instance} with TTL #{@timer.time_to_live}"
49
+ response_keepalive
50
+ end
51
+ rescue
52
+ raise Errors::Janus::KeepaliveThread::Start
39
53
  end
40
54
 
41
55
  # Kill session and disable instance
42
56
  def kill
43
- response_destroy
57
+ if @session.present? && @message.present?
58
+ response_destroy if find_model.enable
59
+ end
44
60
  super
61
+ rescue
62
+ raise Errors::Janus::KeepaliveThread::Kill
45
63
  end
46
64
 
47
65
  def instance_is_down
48
66
  janus = find_model
49
- janus.set(enable: false)
50
-
67
+ janus.set(enable: false).unset(%I[thread session])
51
68
  Tools::Log.instance.fatal \
52
69
  "Janus Instance [#{janus.instance}] is down, kill thread."
53
- Thread.instance_method(:kill).bind(self).call
70
+ prepare_kill_thread
71
+ rescue
72
+ raise Errors::Janus::KeepaliveThread::InstanceIsDown
54
73
  end
55
74
 
56
75
  private
57
76
 
77
+ attr_reader :instance
78
+
79
+ def prepare_kill_thread
80
+ @session = @message = nil
81
+ KeepaliveThread.instance_method(:kill).bind(self).call
82
+ end
83
+
58
84
  def find_model
59
- Models::JanusInstance.find_by_session(@session)
85
+ if @session.blank?
86
+ Models::JanusInstance.find(@message.instance)
87
+ else
88
+ Models::JanusInstance.find_by_session(@session)
89
+ end
60
90
  end
61
91
 
62
92
  def publisher
@@ -3,6 +3,8 @@
3
3
  require 'timeout'
4
4
  require 'timers'
5
5
 
6
+ # :reek:DuplicateMethodCall
7
+
6
8
  module RubyRabbitmqJanus
7
9
  module Janus
8
10
  module Concurrencies
@@ -11,16 +13,21 @@ module RubyRabbitmqJanus
11
13
  # # Manage time for thread
12
14
  #
13
15
  # Configure all timer used in keepalive class
16
+ #
17
+ # @!attribute [r] time_to_live
18
+ # @return [Integer] Time for interval between keepalive message
19
+ # @!attribute [r] time_to_die
20
+ # @return [Integer] Time before timer stop it
14
21
  class KeepaliveTimer
22
+ attr_reader :time_to_live, :time_to_die
23
+
15
24
  # Initialize timer to keeaplive thread.
16
- # Configure timer with :
17
- # - interval for each keepalive message
18
- # - timeout for session response
19
- # - timeout for publish message
20
25
  def initialize
21
26
  @time_to_live = Tools::Config.instance.ttl
22
- @time_publish = @time_to_live + 5
27
+ @time_to_die = test_time_to_die >= 60 ? 59 : test_time_to_die
23
28
  @timer = Timers::Group.new
29
+ rescue
30
+ raise Errors::Janus::KeepaliveTimer::Initializer
24
31
  end
25
32
 
26
33
  # Execute a loop with timer for sending keepalive message
@@ -28,36 +35,48 @@ module RubyRabbitmqJanus
28
35
  def loop_keepalive(&block)
29
36
  @timer.now_and_every(@time_to_live) { prepare_loop(&block) }
30
37
  loop { @timer.wait }
38
+ rescue
39
+ raise Errors::Janus::KeepaliveTimer::LoopKeepalive
31
40
  end
32
41
 
33
42
  # Test if session is present/exist in Janus Instance
34
43
  def session(&block)
35
- Timeout.timeout(@time_publish) { yield }
44
+ Timeout.timeout(@time_to_die) { yield }
36
45
  rescue Timeout::Error
37
46
  stop_timer
38
47
  block.binding.receiver.instance_is_down
48
+ rescue
49
+ raise Errors::Janus::KeepaliveTimer::Session
39
50
  end
40
51
 
41
52
  # Stop timer to keepalive thread
42
53
  def stop_timer
43
54
  @timer.pause
55
+ rescue
56
+ raise Errors::Janus::KeepaliveTimer::StopTimer
44
57
  end
45
58
 
46
59
  # Start timer to keepalive thread
47
60
  def start_timer
48
61
  @timer.resume
62
+ rescue
63
+ raise Errors::Janus::KeepaliveTimer::StartTimer
49
64
  end
50
65
 
51
66
  private
52
67
 
53
68
  def prepare_loop(&block)
54
- Timeout.timeout(@time_publish) do
69
+ Timeout.timeout(@time_to_die) do
55
70
  block.binding.receiver.restart_session if yield
56
71
  end
57
72
  rescue Timeout::Error
58
73
  stop_timer
59
74
  block.binding.receiver.instance_is_down
60
75
  end
76
+
77
+ def test_time_to_die
78
+ @time_to_live + 5
79
+ end
61
80
  end
62
81
  end
63
82
  end
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ # :reek:UtilityFunction
4
+
3
5
  module RubyRabbitmqJanus
4
6
  module Models
5
7
  # @author VAILLANT Jeremy <jeremy.vaillant@dazzl.tv>
@@ -26,6 +28,13 @@ module RubyRabbitmqJanus
26
28
  def set(attributes)
27
29
  update_columns(attributes)
28
30
  end
31
+
32
+ # Destroy data to column
33
+ #
34
+ # @param [Array] List to attribute to delete in document
35
+ def unset(attributes)
36
+ Hash[attributes.map { |key, _value| [key, nil] }]
37
+ end
29
38
  end
30
39
  end
31
40
  end
@@ -20,7 +20,7 @@ module RubyRabbitmqJanus
20
20
  if enable && enable_changed?
21
21
  create_a_session_in_janus_instance
22
22
  elsif !enable && enable_changed?
23
- disable_a_session_in_janus_instance
23
+ destroy_a_session_in_janus_instance
24
24
  end
25
25
  end
26
26
 
@@ -38,15 +38,11 @@ module RubyRabbitmqJanus
38
38
  set(session: janus_instance.session, thread: janus_instance.thread_id)
39
39
  end
40
40
 
41
- def disable_a_session_in_janus_instance
42
- info_instance('Destroy session')
43
- keepalive_object_thread.kill
44
- unset(%I[thread session])
45
- end
46
-
47
41
  def destroy_a_session_in_janus_instance
48
42
  info_instance('Destroy session')
43
+ keepalive_object_thread.send(:response_destroy)
49
44
  keepalive_object_thread.kill
45
+ unset(%I[thread session])
50
46
  end
51
47
 
52
48
  def keepalive_object
@@ -56,12 +56,9 @@ module RubyRabbitmqJanus
56
56
  private
57
57
 
58
58
  def read_options_server
59
+ conn = %w[host port pass user vhost]
59
60
  cfg = Tools::Config.instance.options['rabbit']
60
- opts = {}
61
- %w[host port pass user vhost].each do |val|
62
- opts.merge!(val.to_sym => cfg[val])
63
- end
64
- opts
61
+ Hash[conn.map { |value| [value.to_sym, cfg[value]] }]
65
62
  end
66
63
 
67
64
  def option_log_rabbit
@@ -22,22 +22,14 @@ module RubyRabbitmqJanus
22
22
 
23
23
  # Define options sending to rabbitmq
24
24
  def options
25
- {
26
- routing_key: Tools::Cluster.instance.queue_to(@instance),
27
- correlation_id: @correlation,
28
- content_type: 'application/json'
29
- }
25
+ base.merge(routing_key: Tools::Cluster.instance.queue_to(@instance))
30
26
  rescue
31
27
  raise Errors::Rabbit::Propertie::Options
32
28
  end
33
29
 
34
30
  # Define option sending to rabbitmq for janus admin message
35
31
  def options_admin(type_request)
36
- {
37
- routing_key: determine_routing_key(type_request),
38
- correlation_id: @correlation,
39
- content_type: 'application/json'
40
- }
32
+ base.merge(routing_key: determine_routing_key(type_request))
41
33
  rescue
42
34
  raise Errors::Rabbit::Propertie::Options_admin
43
35
  end
@@ -53,6 +45,10 @@ module RubyRabbitmqJanus
53
45
  cluster.queue_to(@instance)
54
46
  end
55
47
  end
48
+
49
+ def base
50
+ { correlation_id: @correlation, content_type: 'application/json' }
51
+ end
56
52
  end
57
53
  end
58
54
  end
data/spec/spec_helper.rb CHANGED
@@ -6,7 +6,7 @@ require 'json-schema-rspec'
6
6
  require 'rails'
7
7
  require 'factory_girl'
8
8
  require 'database_cleaner'
9
- ENV['MONGO']='true' if ENV['MONGO'].nil?
9
+ ENV['MONGO'] = 'true' if ENV['MONGO'].nil?
10
10
  require ENV['MONGO'].match?('true') ? 'mongoid' : 'active_record'
11
11
 
12
12
  require 'ruby_rabbitmq_janus'
@@ -28,7 +28,6 @@ end
28
28
  RSpec.configure do |config|
29
29
  DatabaseCleaner.strategy = :truncation
30
30
  ENV['MONGO'].match?('true') ? load_mongo : load_active_record
31
- after_load_database
32
31
 
33
32
  config.expect_with :rspec do |c|
34
33
  c.syntax = :expect
@@ -60,8 +59,11 @@ RSpec.configure do |config|
60
59
 
61
60
  # Configure Initializer RRJ and create session with Janus Instance
62
61
  config.before(:example) do |example|
63
- initializer_rrj(example.metadata)
64
- clear
65
- find_instance
62
+ unless example.metadata[:type].match?(/thread/) || example.metadata[:type].match?(/tools/)
63
+ after_load_database
64
+ initializer_rrj(example.metadata)
65
+ clear
66
+ find_instance
67
+ end
66
68
  end
67
69
  end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+
5
+ describe RubyRabbitmqJanus::Janus::Concurrencies::Concurrency, type: :thread, name: :concurrency do
6
+ let(:concurrency) { RubyRabbitmqJanus::Janus::Concurrencies::Concurrency.new }
7
+
8
+ it { expect(concurrency.send(:rabbit)).to be_a(RubyRabbitmqJanus::Rabbit::Connect) }
9
+ it { expect(concurrency.send(:lock)).to be_a(Mutex) }
10
+ it { expect(concurrency.send(:condition)).to be_a(ConditionVariable) }
11
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+
5
+ describe RubyRabbitmqJanus::Janus::Concurrencies::KeepaliveThread, type: :thread, name: :keepalive_initializer do
6
+ let(:instance) { [1, 2].sample }
7
+ let(:concurrency) { RubyRabbitmqJanus::Janus::Concurrencies::KeepaliveInitializer.new(instance) }
8
+
9
+ it { expect(concurrency.send(:rabbit)).to be_a(RubyRabbitmqJanus::Rabbit::Connect) }
10
+ it { expect(concurrency.send(:lock)).to be_a(Mutex) }
11
+ it { expect(concurrency.send(:condition)).to be_a(ConditionVariable) }
12
+ it { expect(concurrency.instance_variable_get(:@thread)).to be_a(RubyRabbitmqJanus::Janus::Concurrencies::KeepaliveThread) }
13
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+
5
+ describe RubyRabbitmqJanus::Janus::Concurrencies::KeepaliveThread, type: :thread, name: :keepalive_thread do
6
+ let(:instance) { [1, 2].sample }
7
+ let(:rabbit) { RubyRabbitmqJanus::Janus::Concurrencies::Concurrency.new.send(:rabbit) }
8
+ let(:concurrency) { RubyRabbitmqJanus::Janus::Concurrencies::KeepaliveThread.new(instance, rabbit) { nil } }
9
+
10
+ it { expect(concurrency.instance_variable_get(:@session)).to eql(nil) }
11
+ it { expect(concurrency.instance_variable_get(:@publisher)).to eql(nil) }
12
+ it { expect(concurrency.instance_variable_get(:@rabbit)).to be_a(RubyRabbitmqJanus::Rabbit::Connect) }
13
+ it { expect(concurrency.instance_variable_get(:@timer)).to be_a(RubyRabbitmqJanus::Janus::Concurrencies::KeepaliveTimer) }
14
+ it { expect(concurrency.instance_variable_get(:@message)).to be_a(RubyRabbitmqJanus::Janus::Concurrencies::KeepaliveMessage) }
15
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+
5
+ describe RubyRabbitmqJanus::Janus::Concurrencies::KeepaliveTimer, type: :thread, name: :keepalive_timer do
6
+ let(:concurrency) { RubyRabbitmqJanus::Janus::Concurrencies::KeepaliveTimer.new }
7
+
8
+ it { expect(concurrency.send(:time_to_live)).to be_a(Integer) }
9
+ it { expect(concurrency.send(:time_to_die)).to be_a(Integer) }
10
+ it { expect(concurrency.instance_variable_get(:@timer)).to be_a(Timers::Group) }
11
+ it { expect(concurrency.instance_variable_get(:@time_to_live)).to eql(RubyRabbitmqJanus::Tools::Config.instance.options['janus']['session']['keepalive']) }
12
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby_rabbitmq_janus
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.0.pre.170
4
+ version: 2.2.0.pre.173
5
5
  platform: ruby
6
6
  authors:
7
7
  - VAILLANT Jeremy
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-09-08 00:00:00.000000000 Z
11
+ date: 2017-09-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -398,7 +398,6 @@ files:
398
398
  - config/requests/peer/answer.json
399
399
  - config/requests/peer/offer.json
400
400
  - config/requests/peer/trickle.json
401
- - lib/config/default.yml
402
401
  - lib/generators/ruby_rabbitmq_janus/configuration_generator.rb
403
402
  - lib/generators/ruby_rabbitmq_janus/create_request_generator.rb
404
403
  - lib/generators/ruby_rabbitmq_janus/default_request_generator.rb
@@ -577,6 +576,10 @@ files:
577
576
  - spec/support/schemas/request/peer/trickle.json
578
577
  - spec/support/sdp.rb
579
578
  - spec/support/type.rb
579
+ - spec/thread/concurencies_spec.rb
580
+ - spec/thread/keepalive_initializer_spec.rb
581
+ - spec/thread/keepalive_thread_spec.rb
582
+ - spec/thread/keepalive_timer_spec.rb
580
583
  homepage: https://github.com/dazzl-tv/ruby-rabbitmq-janus
581
584
  licenses:
582
585
  - MIT
@@ -614,7 +617,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
614
617
  version: 1.3.1
615
618
  requirements: []
616
619
  rubyforge_project:
617
- rubygems_version: 2.6.11
620
+ rubygems_version: 2.6.13
618
621
  signing_key:
619
622
  specification_version: 4
620
623
  summary: Ruby RabbitMQ Janus
@@ -1,28 +0,0 @@
1
- rabbit:
2
- host: rabbit.dazzl.local
3
- port: 5672
4
- vhost: /
5
- user: dazzl_api
6
- pass: SuWYeg2d
7
- admin_pass: Guj9khoN
8
- level: info
9
-
10
- queues:
11
- standard:
12
- from: from-janus
13
- to: to-janus
14
- admin:
15
- from: from-janus-admin
16
- to: to-janus-admin
17
-
18
- janus:
19
- session:
20
- keepalive: 55
21
- plugins:
22
- - janus.plugin.dazzl.videocontrol
23
-
24
- gem:
25
- cluster:
26
- enabled: true
27
- log:
28
- level: debug