dispatch-rider 1.2.8 → 1.2.9

Sign up to get free protection for your applications and to get access to all the features.
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