mirror of
https://github.com/ditkrg/rabbit_carrots.git
synced 2026-01-22 22:06:40 +00:00
32 lines
963 B
Ruby
32 lines
963 B
Ruby
require 'singleton'
|
|
|
|
module RabbitCarrots
|
|
class Connection
|
|
include ::Singleton
|
|
|
|
attr_reader :connection
|
|
|
|
def initialize
|
|
@connection = Bunny.new(
|
|
host: RabbitCarrots.configuration.rabbitmq_host,
|
|
port: RabbitCarrots.configuration.rabbitmq_port,
|
|
user: RabbitCarrots.configuration.rabbitmq_user,
|
|
password: RabbitCarrots.configuration.rabbitmq_password,
|
|
vhost: RabbitCarrots.configuration.rabbitmq_vhost,
|
|
automatically_recover: RabbitCarrots.configuration.automatically_recover || true,
|
|
network_recovery_interval: RabbitCarrots.configuration.network_recovery_interval || 5,
|
|
recovery_attempts: RabbitCarrots.configuration.recovery_attempts || 5,
|
|
recovery_attempts_exhausted: -> { Process.kill('TERM', Process.pid) }
|
|
)
|
|
|
|
@connection.start
|
|
end
|
|
|
|
def channel
|
|
@channel ||= ConnectionPool.new do
|
|
connection.create_channel
|
|
end
|
|
end
|
|
end
|
|
end
|