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