stalin 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (5) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +7 -3
  3. data/VERSION +1 -1
  4. data/lib/stalin/adapter/rack.rb +4 -8
  5. metadata +16 -16
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0a33b561b1435c293a784b49b327fd2a9ae097a6
4
- data.tar.gz: ac36a422c5daff8765e4ef426bae938cdf1b5229
3
+ metadata.gz: 358441ddd27f1ebef84ad030bb8ac3569a1aabd2
4
+ data.tar.gz: eb50ee94465f7eac9a4c7248317cee70696f21b3
5
5
  SHA512:
6
- metadata.gz: 66788da1669aee34f376f25242b212e620f38914b92fe3b13abac429478bcd54ca2958448d282df3e9437ac7296f8cb80d4ec322e5689c33b6985c7481ff4bc4
7
- data.tar.gz: c34ca0a488667afc8023f68bb4514cc41b6df9a59016b787ddf38ec4fcd506c28b61ef7fb8f7011d31279bebde60f9bda092b09141b0bf0134b89016894049d4
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
- # Or Stalin::Adapter::Puma
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
- TODO
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.0
1
+ 0.1.1
@@ -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
- case args.length
21
- when 7
22
- # Construct an instance of this (or a derived) class with signals explicitly specified.
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
- raise ArgumentError, "Wrong number of arguments (#{args.length} for 3..7)"
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.0
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.2.2
141
+ rubygems_version: 2.0.14
142
142
  signing_key:
143
143
  specification_version: 4
144
144
  summary: Kill rack