Sha256: c81b29ff0d584e6b8a84189f4366ca62d12d6dad743a230f82e9ee4cfda9ee64

Contents?: true

Size: 1.17 KB

Versions: 11

Compression:

Stored size: 1.17 KB

Contents

# frozen_string_literal: true

module RubyRabbitmqJanus
  module Janus
    # Modules for create autonomous processus
    module Concurrencies
      # @author VAILLANT Jeremy <jeremy.vaillant@dazzl.tv>
      #
      # # Class for manage threads
      #
      # @abstract Manage thread in this gem for keepalive message and listen
      #   standard queue.
      class Concurrency
        # Initialize class with elements for thread communication
        def initialize
          Tools::Log.instance.info "Create an thread -- #{self.class.name}"
          @rabbit = Rabbit::Connect.new
          @lock = Mutex.new
          @condition = ConditionVariable.new
          @thread = Thread.new { initialize_thread }
        rescue
          raise Errors::Janus::Concurencies::Initializer
        end

        private

        def initialize_thread
          @rabbit.transaction_long { transaction_running }
        rescue Interrupt
          Tools::Log.instance.info "Stop transaction #{self.class.name}"
          @rabbit.close
        end

        attr_reader :thread, :lock, :condition, :rabbit
      end
    end
  end
end

require 'rrj/janus/processus/keepalive'
require 'rrj/janus/processus/event'

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
ruby_rabbitmq_janus-2.1.1 lib/rrj/janus/processus/concurrency.rb
ruby_rabbitmq_janus-2.1.1.pre.139 lib/rrj/janus/processus/concurrency.rb
ruby_rabbitmq_janus-2.1.0 lib/rrj/janus/processus/concurrency.rb
ruby_rabbitmq_janus-2.1.0.pre.137 lib/rrj/janus/processus/concurrency.rb
ruby_rabbitmq_janus-2.1.0.pre.136 lib/rrj/janus/processus/concurrency.rb
ruby_rabbitmq_janus-2.1.0.pre.135 lib/rrj/janus/processus/concurrency.rb
ruby_rabbitmq_janus-2.1.0.pre.132 lib/rrj/janus/processus/concurrency.rb
ruby_rabbitmq_janus-2.1.0.pre.131 lib/rrj/janus/processus/concurrency.rb
ruby_rabbitmq_janus-2.1.0.pre.130 lib/rrj/janus/processus/concurrency.rb
ruby_rabbitmq_janus-2.1.0.pre.129 lib/rrj/janus/processus/concurrency.rb
ruby_rabbitmq_janus-2.1.0.pre.128 lib/rrj/janus/processus/concurrency.rb