puma_worker_killer 0.2.0 → 0.3.0

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
  SHA256:
3
- metadata.gz: 656a49cbbcbc36e3735d20ade22027cc209213f029e51faa7f0f08c7dbcffb70
4
- data.tar.gz: 5a328323d77f9ede2a44ab0c37577b6277a682c73ce1ad0f1bf167efb720a62d
3
+ metadata.gz: 57d35810e8f71f67c6c6a964e53a9d0880b9d6a8cfd03b06f736aee29dae9494
4
+ data.tar.gz: 6b403245794f280c4c11e2ab9ef5ba7074055022da058599759f419394fb12b1
5
5
  SHA512:
6
- metadata.gz: f77c25f16200fc313b7d230f852fcd2543f1f2ff1f40863c757c9288cbbc520c6b44f9ba3c51fef26693e1d233b66519100d0443b3020402f55ebee397babd09
7
- data.tar.gz: df97c81b1e0d93a8ace45cd1b24a9e6de4fb2f94a85b181650a163f458aae754a6571b5b34721b6b718649059305c2637f0766597b0560f9412a57c56e91281a
6
+ metadata.gz: 1a3d072a748058b192a0320cd17bd401a289a4ea0be1df2d0f7946eaaecaf97747b3b920cd502650bf6a55d4fe7457720888a6132155b02a0e30bb708e9bd5d7
7
+ data.tar.gz: 9adfab59ed940a36eba60c123f3bbb25de11dd1717520df433671da45bb88ddbc6a12b4b1e7e3620e83acb5189399980accc27600f7c668e9fda438a5ae033cd
@@ -1,9 +1,10 @@
1
1
  language: ruby
2
2
  rvm:
3
3
  - 2.3.8
4
- - 2.4.5
5
- - 2.5.3
6
- - 2.6.0
4
+ - 2.4.10
5
+ - 2.5.8
6
+ - 2.6.6
7
+ - 2.7.1
7
8
  - ruby-head
8
9
  - rbx
9
10
  before_install:
@@ -1,4 +1,9 @@
1
- ## Master
1
+ ## Main
2
+
3
+ ## 0.3.0
4
+
5
+ - Test on recent ruby versions #84
6
+ - Add option to adjust restart randomizer (#78)
2
7
 
3
8
  ## 0.2.0
4
9
 
@@ -6,12 +6,14 @@ module PumaWorkerKiller
6
6
  extend self
7
7
 
8
8
  attr_accessor :ram, :frequency, :percent_usage, :rolling_restart_frequency,
9
+ :rolling_restart_splay_seconds,
9
10
  :reaper_status_logs, :pre_term, :rolling_pre_term, :on_calculation
10
11
 
11
12
  self.ram = 512 # mb
12
13
  self.frequency = 10 # seconds
13
14
  self.percent_usage = 0.99 # percent of RAM to use
14
15
  self.rolling_restart_frequency = 6 * 3600 # 6 hours in seconds
16
+ self.rolling_restart_splay_seconds = 0.0..300.0 # 0 to 5 minutes in seconds
15
17
  self.reaper_status_logs = true
16
18
  self.pre_term = nil
17
19
  self.rolling_pre_term = nil
@@ -30,8 +32,10 @@ module PumaWorkerKiller
30
32
  enable_rolling_restart(rolling_restart_frequency) if rolling_restart_frequency
31
33
  end
32
34
 
33
- def enable_rolling_restart(frequency = rolling_restart_frequency)
34
- frequency += rand(0..10.0) # so all workers don't restart at the exact same time across multiple machines
35
+ def enable_rolling_restart(frequency = rolling_restart_frequency,
36
+ splay_seconds = rolling_restart_splay_seconds)
37
+ # Randomize so all workers don't restart at the exact same time across multiple machines.
38
+ frequency += rand(splay_seconds)
35
39
  AutoReap.new(frequency, RollingRestart.new(nil, rolling_pre_term)).start
36
40
  end
37
41
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module PumaWorkerKiller
4
- VERSION = '0.2.0'
4
+ VERSION = '0.3.0'
5
5
  end
@@ -21,8 +21,8 @@ Gem::Specification.new do |gem|
21
21
 
22
22
  gem.add_dependency 'get_process_mem', '~> 0.2'
23
23
  gem.add_dependency 'puma', '>= 2.7', '< 5'
24
- gem.add_development_dependency 'rack', '~> 1.6'
25
- gem.add_development_dependency 'rake', '~> 10.1'
24
+ gem.add_development_dependency 'rack', '~> 2.0'
25
+ gem.add_development_dependency 'rake', '~> 13.0'
26
26
  gem.add_development_dependency 'test-unit', '>= 0'
27
27
  gem.add_development_dependency 'wait_for_it', '~> 0.1'
28
28
  end
@@ -5,6 +5,6 @@ load File.expand_path('fixture_helper.rb', __dir__)
5
5
  PumaWorkerKiller.config do |config|
6
6
  config.rolling_pre_term = ->(worker) { puts("About to terminate (rolling) worker: #{worker.pid}") }
7
7
  end
8
- PumaWorkerKiller.enable_rolling_restart(1) # 1 second
8
+ PumaWorkerKiller.enable_rolling_restart(1, 0..5.0) # 1 second, short 1-5s splay.
9
9
 
10
10
  run HelloWorldApp
@@ -2,6 +2,6 @@
2
2
 
3
3
  load File.expand_path('fixture_helper.rb', __dir__)
4
4
 
5
- PumaWorkerKiller.enable_rolling_restart(1) # 1 second
5
+ PumaWorkerKiller.enable_rolling_restart(1, 0..5.0) # 1 second, short 1-5s splay.
6
6
 
7
7
  run HelloWorldApp
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: puma_worker_killer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Richard Schneeman
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-08-18 00:00:00.000000000 Z
11
+ date: 2020-08-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: get_process_mem
@@ -50,28 +50,28 @@ dependencies:
50
50
  requirements:
51
51
  - - "~>"
52
52
  - !ruby/object:Gem::Version
53
- version: '1.6'
53
+ version: '2.0'
54
54
  type: :development
55
55
  prerelease: false
56
56
  version_requirements: !ruby/object:Gem::Requirement
57
57
  requirements:
58
58
  - - "~>"
59
59
  - !ruby/object:Gem::Version
60
- version: '1.6'
60
+ version: '2.0'
61
61
  - !ruby/object:Gem::Dependency
62
62
  name: rake
63
63
  requirement: !ruby/object:Gem::Requirement
64
64
  requirements:
65
65
  - - "~>"
66
66
  - !ruby/object:Gem::Version
67
- version: '10.1'
67
+ version: '13.0'
68
68
  type: :development
69
69
  prerelease: false
70
70
  version_requirements: !ruby/object:Gem::Requirement
71
71
  requirements:
72
72
  - - "~>"
73
73
  - !ruby/object:Gem::Version
74
- version: '10.1'
74
+ version: '13.0'
75
75
  - !ruby/object:Gem::Dependency
76
76
  name: test-unit
77
77
  requirement: !ruby/object:Gem::Requirement