lib/dispatch-rider/demultiplexer.rb in dispatch-rider-1.2.8 vs lib/dispatch-rider/demultiplexer.rb in dispatch-rider-1.2.9
- old
+ new
@@ -10,10 +10,12 @@
def initialize(queue, dispatcher, error_handler)
@queue = queue
@dispatcher = dispatcher
@error_handler = error_handler
@continue = true
+ @current_message = nil
+ install_term_trap
end
def start
do_loop do
begin
@@ -30,11 +32,25 @@
@continue = false
end
private
+ def install_term_trap
+ SignalTools.append_trap('TERM') do
+ logger.info "Got SIGTERM while executing: #{message_info_fragment(@current_message)}"
+ end
+ end
+
+ def with_current_message(message)
+ @current_message = message
+ yield
+ @current_message = nil
+ end
+
def dispatch_message(message)
- dispatcher.dispatch(message)
+ with_current_message(message) do
+ dispatcher.dispatch(message)
+ end
rescue => exception
handle_message_error message, exception
false
end