stalin 0.1.0 → 0.1.1
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/README.md +7 -3
- data/VERSION +1 -1
- data/lib/stalin/adapter/rack.rb +4 -8
- metadata +16 -16
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 358441ddd27f1ebef84ad030bb8ac3569a1aabd2
|
4
|
+
data.tar.gz: eb50ee94465f7eac9a4c7248317cee70696f21b3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cdb30d3fd48d13301330d0c895715e1d2087c1e63e2464935ca6c30d44fdce7351229232ad058bfb40e6cbd6b6fec125376c5256e3626c3f0f7cd96b8ac221c3
|
7
|
+
data.tar.gz: 26833e130901894f3be8a49631834eeffcb8e0e209db566d238f6a1b05785aaf5d1c5c34a3d8f2232a008b9f49f632878adbffd314822a59eb8a4b8e2365c470
|
data/README.md
CHANGED
@@ -37,13 +37,17 @@ Just include stalin in your Gemfile.
|
|
37
37
|
Decide on which application server you will use. Add some lines to your `config.ru` to
|
38
38
|
install a suitable Stalin middleware.
|
39
39
|
|
40
|
+
Because different app servers have different signal-handling and restart semantics, we
|
41
|
+
must specialize Stalin's behavior; this is done with a base class (Stalin::Adapter::Rack)
|
42
|
+
plus one derived class per supported application server.
|
43
|
+
|
40
44
|
# Gem that kills app processes when their heap becomes too fragmented.
|
41
45
|
require 'stalin'
|
42
46
|
|
43
|
-
# Max memory size (RSS) per worker
|
44
47
|
mb = 1024**2
|
45
48
|
|
46
|
-
#
|
49
|
+
# Use the Unicorn adapter to ensure we send Unicorn-friendly kill signals.
|
50
|
+
# Each worker will shutdown at some point between 192MB and 256MB of memory usage.
|
47
51
|
use Stalin::Adapter::Unicorn, (192*mb), (256*mb)
|
48
52
|
|
49
53
|
If you instantiate Stalin::Adapter::Rack directly, you have two choices:
|
@@ -55,7 +59,7 @@ explicit about your application server than rely on our heuristic!
|
|
55
59
|
|
56
60
|
# Tuning
|
57
61
|
|
58
|
-
|
62
|
+
Consult the documentation for your adapter's `#initialize` to learn how to tune Stalin's behavior.
|
59
63
|
|
60
64
|
# Special Thanks
|
61
65
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.1
|
data/lib/stalin/adapter/rack.rb
CHANGED
@@ -17,13 +17,9 @@ module Stalin::Adapter
|
|
17
17
|
# @raise [ArgumentError] if an incorrect number of arguments is passed
|
18
18
|
# @raise [RuntimeError] if 0..5 arguments and the heuristic can't figure out which signals to use
|
19
19
|
def self.new(*args)
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
super
|
24
|
-
when 3..6
|
25
|
-
# Warn that this shim will go away in v2
|
26
|
-
warn "Rack.new with fewer than 7 arguments is deprecated; please instantiate a derived class e.g. Unicorn.new or Puma.new"
|
20
|
+
if self == Rack && args.length < 3
|
21
|
+
# Warn that this shim will go away in v1
|
22
|
+
warn "Stalin::Adapter::Rack.new with fewer than 3 arguments is deprecated; please instantiate a derived class e.g. Unicorn or Puma"
|
27
23
|
|
28
24
|
# Use a heuristic to decide on the correct adapter and instantiate a derived class.
|
29
25
|
if defined?(::Unicorn)
|
@@ -38,7 +34,7 @@ module Stalin::Adapter
|
|
38
34
|
middleware.instance_eval { initialize(*args) }
|
39
35
|
middleware
|
40
36
|
else
|
41
|
-
|
37
|
+
super
|
42
38
|
end
|
43
39
|
end
|
44
40
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: stalin
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tony Spataro
|
@@ -14,84 +14,84 @@ dependencies:
|
|
14
14
|
name: jeweler
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ~>
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '2.0'
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - ~>
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '2.0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rspec
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ~>
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '3.0'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - ~>
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '3.0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: sinatra
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - ~>
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '1.4'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - ~>
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '1.4'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: unicorn
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - ~>
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '4.8'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- -
|
66
|
+
- - ~>
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '4.8'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: thin
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- -
|
73
|
+
- - ~>
|
74
74
|
- !ruby/object:Gem::Version
|
75
75
|
version: '1.6'
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- -
|
80
|
+
- - ~>
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '1.6'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: puma
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
|
-
- -
|
87
|
+
- - ~>
|
88
88
|
- !ruby/object:Gem::Version
|
89
89
|
version: '2.11'
|
90
90
|
type: :development
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
|
-
- -
|
94
|
+
- - ~>
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '2.11'
|
97
97
|
description: Kill Web application workers based on arbitrary conditions.
|
@@ -128,17 +128,17 @@ require_paths:
|
|
128
128
|
- lib
|
129
129
|
required_ruby_version: !ruby/object:Gem::Requirement
|
130
130
|
requirements:
|
131
|
-
- -
|
131
|
+
- - '>='
|
132
132
|
- !ruby/object:Gem::Version
|
133
133
|
version: '0'
|
134
134
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
135
135
|
requirements:
|
136
|
-
- -
|
136
|
+
- - '>='
|
137
137
|
- !ruby/object:Gem::Version
|
138
138
|
version: '0'
|
139
139
|
requirements: []
|
140
140
|
rubyforge_project:
|
141
|
-
rubygems_version: 2.
|
141
|
+
rubygems_version: 2.0.14
|
142
142
|
signing_key:
|
143
143
|
specification_version: 4
|
144
144
|
summary: Kill rack
|