From 747032f1c2585aa9df3d0756f493a30f443c427e Mon Sep 17 00:00:00 2001 From: Yehor Chumak Date: Wed, 29 Jul 2020 11:25:59 +0300 Subject: [PATCH] Change naming to barong.postmaster.event.mailer and turn off manual_ack for events --- app/services/event_mailer.rb | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/app/services/event_mailer.rb b/app/services/event_mailer.rb index ac5bd0e21..2b6f2be78 100644 --- a/app/services/event_mailer.rb +++ b/app/services/event_mailer.rb @@ -21,17 +21,21 @@ def call def listen unlisten - @bunny_session = Bunny::Session.new(rabbitmq_credentials).tap(&:start) + @bunny_session = Bunny::Session.new(rabbitmq_credentials).tap do |session| + session.start + Kernel.at_exit { session.stop } + end + @bunny_channel = @bunny_session.channel - queue = @bunny_channel.queue('', auto_delete: true, durable: true) + queue = @bunny_channel.queue('barong.postmaster.event.mailer', auto_delete: false, durable: true) @events.each do |event| exchange = @bunny_channel.direct(@exchanges[event[:exchange].to_sym][:name]) queue.bind(exchange, routing_key: event[:key]) end Rails.logger.info { 'Listening for events.' } - queue.subscribe(manual_ack: true, block: true, &method(:handle_message)) + queue.subscribe(manual_ack: false, block: true, &method(:handle_message)) end def unlisten @@ -107,7 +111,6 @@ def handle_message(delivery_info, _metadata, payload) } Postmaster.process_payload(params).deliver_now - @bunny_channel.acknowledge(delivery_info.delivery_tag, false) rescue StandardError => e Rails.logger.error { e.inspect }