dispatch-rider 1.2.8 → 1.2.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e4ecc3cb31c588f86ad0fb803347f98752458ca2
4
- data.tar.gz: 5945c905356d231948477a34104e7ebcbf9c385e
3
+ metadata.gz: 4ac24a060165ad6ab91933aeabf0b14b3f957269
4
+ data.tar.gz: 461b9b0084cc6882836b73ffe834965c2cb90721
5
5
  SHA512:
6
- metadata.gz: e68f71bac1ba5447ccca27a199ea2a08f5a869601d7a760926f27d348537d902aafc9878050ece7b755010a9d26fa5b1631130c0dc836d71e7909774af8fcdad
7
- data.tar.gz: 792dc04c2eea1c68c573889ebefe4c39c9b7fe200e6895922eade10b12a24da6f91d9a333240fe1872df7131f65933939e95218fa908fc56d0aa44a33cf315b6
6
+ metadata.gz: f542862dc97a880537e65006aeb56a68f0b265969664bf04b1417601cd611278d02c2bef5a7c6a637788d1021528da3ab3c0a8575a348c181c8e52045223aca0
7
+ data.tar.gz: 3b840b5a19ce2393be80349abfe24f38e9a13851fa9fecc1a4c9b7115fda72e57e44a1d52f4d49a9c21e949d7a4d6c9c0d265ef755291bba1ab40a841e4c9576
@@ -23,6 +23,7 @@ module DispatchRider
23
23
  end
24
24
  end
25
25
 
26
+ require "dispatch-rider/signal_tools"
26
27
  require "dispatch-rider/errors"
27
28
  require "dispatch-rider/error_handlers"
28
29
  require "dispatch-rider/handlers"
@@ -12,6 +12,8 @@ module DispatchRider
12
12
  @dispatcher = dispatcher
13
13
  @error_handler = error_handler
14
14
  @continue = true
15
+ @current_message = nil
16
+ install_term_trap
15
17
  end
16
18
 
17
19
  def start
@@ -32,8 +34,22 @@ module DispatchRider
32
34
 
33
35
  private
34
36
 
37
+ def install_term_trap
38
+ SignalTools.append_trap('TERM') do
39
+ logger.info "Got SIGTERM while executing: #{message_info_fragment(@current_message)}"
40
+ end
41
+ end
42
+
43
+ def with_current_message(message)
44
+ @current_message = message
45
+ yield
46
+ @current_message = nil
47
+ end
48
+
35
49
  def dispatch_message(message)
36
- dispatcher.dispatch(message)
50
+ with_current_message(message) do
51
+ dispatcher.dispatch(message)
52
+ end
37
53
  rescue => exception
38
54
  handle_message_error message, exception
39
55
  false
@@ -0,0 +1,8 @@
1
+ module SignalTools
2
+ def self.append_trap(signal, &block)
3
+ old_handler = trap(signal) do
4
+ block.call
5
+ old_handler.call if old_handler.respond_to?(:call)
6
+ end
7
+ end
8
+ end
@@ -40,7 +40,7 @@ module DispatchRider
40
40
  private
41
41
 
42
42
  def register_quit_trap
43
- Signal.trap("QUIT") do
43
+ SignalTools.append_trap("QUIT") do
44
44
  # signal number: 3
45
45
  logger.info "Received SIGQUIT, stopping demultiplexer"
46
46
  demultiplexer.stop
@@ -48,7 +48,7 @@ module DispatchRider
48
48
  end
49
49
 
50
50
  def register_term_trap
51
- Signal.trap("TERM") do
51
+ SignalTools.append_trap("TERM") do
52
52
  # signal number: 15
53
53
  logger.info "Received SIGTERM, stopping demultiplexer"
54
54
  demultiplexer.stop
@@ -57,7 +57,7 @@ module DispatchRider
57
57
 
58
58
  def register_int_trap
59
59
  @already_interrupted = false
60
- Signal.trap("INT") do
60
+ SignalTools.append_trap("INT") do
61
61
  if @already_interrupted
62
62
  logger.info "Received SIGINT second time, aborting"
63
63
  exit(0)
@@ -1,4 +1,4 @@
1
1
  # This file specifies the current version of the gem.
2
2
  module DispatchRider
3
- VERSION = "1.2.8"
3
+ VERSION = "1.2.9"
4
4
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dispatch-rider
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.8
4
+ version: 1.2.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Suman Mukherjee
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2014-07-22 00:00:00.000000000 Z
14
+ date: 2014-09-30 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: activesupport
@@ -202,6 +202,7 @@ files:
202
202
  - lib/dispatch-rider/registrars/queue_service.rb
203
203
  - lib/dispatch-rider/registrars/sns_channel.rb
204
204
  - lib/dispatch-rider/runner.rb
205
+ - lib/dispatch-rider/signal_tools.rb
205
206
  - lib/dispatch-rider/subscriber.rb
206
207
  - lib/dispatch-rider/version.rb
207
208
  - lib/generators/dispatch_rider/install/USAGE
@@ -233,7 +234,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
233
234
  version: '0'
234
235
  requirements: []
235
236
  rubyforge_project:
236
- rubygems_version: 2.3.0
237
+ rubygems_version: 2.2.2
237
238
  signing_key:
238
239
  specification_version: 4
239
240
  summary: Messaging system based on the reactor patter. You can publish messages to