toiler 0.4.2 → 0.4.3

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: a2db74f11b3d29deb51e673e5bbb317b087da26b
4
- data.tar.gz: b40560d3d2fbc5e0781154eb509988ca2bbb93c9
3
+ metadata.gz: d5b3fa5e5c309c7e6b3f80c883c9834850b0fe97
4
+ data.tar.gz: e9db1cf4e3d1226a8e200bfabd24b52f7664ab15
5
5
  SHA512:
6
- metadata.gz: afaa74f96f030f0e521bdb8cb6948a4839772428c4bb427da62fac78a0c2bfa87aa72506080ae1c25c57b6b659f324c4c99b19b6acb8a70b52508eb69036d601
7
- data.tar.gz: a6deb6ab20852811f794d3b4f97abd3c7d6b5ab9e0aa5f3578d01bc0f3dfee9a588fed13b8c8cf95c46f1165000830d4d9a9520bb052750d360e05b883cfa231
6
+ metadata.gz: db9a13283091cd3057044a84194c418a3249b1c4854879f15ccbc06e5f2e975a9a24bd8a83c1b02122797cc9c394b60c40065a9964fc2aef31ef918d407c1485
7
+ data.tar.gz: cb0751b3a4e0cd902828833110bfd8132e4d147308e13db10b95cd3cc11970efb3afd3121cc119929d3dfe8df370f22f3dedc45559ed32da8ad7759490fdcc07
data/lib/toiler.rb CHANGED
@@ -65,6 +65,7 @@ module Toiler
65
65
  auto_visibility_timeout: false,
66
66
  concurrency: 1,
67
67
  auto_delete: false,
68
+ shutdown_timeout: 5,
68
69
  batch: false
69
70
  }
70
71
  end
data/lib/toiler/cli.rb CHANGED
@@ -7,6 +7,15 @@ module Toiler
7
7
  # See: https://github.com/mperham/sidekiq/blob/33f5d6b2b6c0dfaab11e5d39688cab7ebadc83ae/lib/sidekiq/cli.rb#L20
8
8
  class Shutdown < Interrupt; end
9
9
 
10
+ class WaitShutdown < Interrupt
11
+ attr_accessor :wait
12
+
13
+ def initialize(wait)
14
+ super
15
+ @wait = wait
16
+ end
17
+ end
18
+
10
19
  # Command line client interface
11
20
  class CLI
12
21
  include Singleton
@@ -33,13 +42,13 @@ module Toiler
33
42
  while (readable_io = IO.select([@self_read]))
34
43
  handle_signal(readable_io.first[0].gets.strip)
35
44
  end
36
- rescue Interrupt
37
- Toiler.logger.info 'Received Interrupt, Waiting up to 60 seconds for actors to finish...'
38
- success = supervisor.ask(:terminate!).wait(60)
45
+ rescue WaitShutdown => shutdown_error
46
+ Toiler.logger.info "Received Interrupt, Waiting up to #{shutdown_error.wait} seconds for actors to finish..."
47
+ success = supervisor.ask(:terminate!).wait(shutdown_error.wait)
39
48
  if success
40
49
  Toiler.logger.info 'Supervisor successfully terminated'
41
50
  else
42
- Toiler.logger.info 'Timeout waiting dor Supervisor to terminate'
51
+ Toiler.logger.info 'Timeout waiting for Supervisor to terminate'
43
52
  end
44
53
  ensure
45
54
  exit 0
@@ -58,7 +67,7 @@ module Toiler
58
67
  end
59
68
 
60
69
  def trap_signals
61
- %w(INT TERM QUIT USR1 USR2 TTIN).each do |sig|
70
+ %w(INT TERM QUIT USR1 USR2 TTIN ABRT).each do |sig|
62
71
  begin
63
72
  trap sig do
64
73
  @self_write.puts(sig)
@@ -109,7 +118,9 @@ module Toiler
109
118
  print_stacktraces
110
119
  print_status
111
120
  when 'INT', 'TERM'
112
- fail Interrupt
121
+ fail WaitShutdown, 60
122
+ when 'ABRT'
123
+ fail WaitShutdown, Toiler.options[:shutdown_timeout] * 60
113
124
  end
114
125
  end
115
126
 
@@ -1,4 +1,4 @@
1
1
  # Toiler Version
2
2
  module Toiler
3
- VERSION = '0.4.2'.freeze
3
+ VERSION = '0.4.3'.freeze
4
4
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: toiler
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.2
4
+ version: 0.4.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sebastian Schepens
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-09-19 00:00:00.000000000 Z
11
+ date: 2016-10-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler