puma_worker_killer 0.2.0 → 0.3.0
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 +4 -4
- data/.travis.yml +4 -3
- data/CHANGELOG.md +6 -1
- data/lib/puma_worker_killer.rb +6 -2
- data/lib/puma_worker_killer/version.rb +1 -1
- data/puma_worker_killer.gemspec +2 -2
- data/test/fixtures/rolling_pre_term.ru +1 -1
- data/test/fixtures/rolling_restart.ru +1 -1
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 57d35810e8f71f67c6c6a964e53a9d0880b9d6a8cfd03b06f736aee29dae9494
|
4
|
+
data.tar.gz: 6b403245794f280c4c11e2ab9ef5ba7074055022da058599759f419394fb12b1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1a3d072a748058b192a0320cd17bd401a289a4ea0be1df2d0f7946eaaecaf97747b3b920cd502650bf6a55d4fe7457720888a6132155b02a0e30bb708e9bd5d7
|
7
|
+
data.tar.gz: 9adfab59ed940a36eba60c123f3bbb25de11dd1717520df433671da45bb88ddbc6a12b4b1e7e3620e83acb5189399980accc27600f7c668e9fda438a5ae033cd
|
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
data/lib/puma_worker_killer.rb
CHANGED
@@ -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
|
-
|
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
|
data/puma_worker_killer.gemspec
CHANGED
@@ -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', '~>
|
25
|
-
gem.add_development_dependency 'rake', '~>
|
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
|
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.
|
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-
|
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: '
|
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: '
|
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: '
|
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: '
|
74
|
+
version: '13.0'
|
75
75
|
- !ruby/object:Gem::Dependency
|
76
76
|
name: test-unit
|
77
77
|
requirement: !ruby/object:Gem::Requirement
|