trident 0.1.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.
@@ -0,0 +1,20 @@
1
+ require_relative '../../test_helper'
2
+
3
+ class Trident::UtilsTest < MiniTest::Should::TestCase
4
+ include Trident::Utils
5
+
6
+ context "#procline" do
7
+
8
+ should "set the procline of the process" do
9
+ pid = fork do
10
+ procline "foo", "bar"
11
+ end
12
+
13
+ process_name = `ps -o command -p #{pid}`.lines.to_a.last.strip
14
+ assert_equal "trident[foo]: bar", process_name
15
+ Process.kill("KILL", pid)
16
+ end
17
+
18
+ end
19
+
20
+ end
@@ -0,0 +1,49 @@
1
+ # a name for labelling pool processes
2
+ application: app_name
3
+
4
+ # loads handlers in the master process before forking workers
5
+ prefork: true
6
+
7
+ # Configure the behavior of the pool manager in response to signals
8
+ # actions are methods on PoolManager and can be sequenced
9
+ signals:
10
+ TERM: stop_gracefully
11
+ INT: stop_forcefully
12
+
13
+ # define and setup all the PoolHandlers
14
+ handlers:
15
+ myhandler:
16
+ environment: "require '<%= Rails.root %>/config/environment'"
17
+ class: MyRailsWorker
18
+ options:
19
+ my_default_option: hum
20
+ signals:
21
+ stop_forcefully: INT
22
+ stop_gracefully: TERM
23
+ otherhandler:
24
+ environment: "class MyWorker; def initialize(opts); end; def start; end; end"
25
+ class: MyWorker
26
+ options:
27
+ my_default_option: dum
28
+ signals:
29
+ stop_forcefully: INT
30
+ stop_gracefully: TERM
31
+
32
+ # Configure the worker pools
33
+ pools:
34
+ mypool:
35
+ # number of worker processes
36
+ size: 5
37
+ # chooses a handler defined above for running process
38
+ handler: myhandler
39
+ # options passed to each handler's initializer (merged into handler options above)
40
+ options:
41
+ some_option: foo
42
+ otherpool:
43
+ # number of worker processes
44
+ size: 3
45
+ # chooses a handler defined above for running process
46
+ handler: myhandler
47
+ # options passed to each handler's initializer (merged into handler options above)
48
+ options:
49
+ some_option: bar
data/trident.gemspec ADDED
@@ -0,0 +1,29 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'trident/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "trident"
8
+ spec.version = Trident::VERSION
9
+ spec.authors = ["Matt Conway"]
10
+ spec.email = ["matt@conwaysplace.com"]
11
+ spec.description = %q{Manages pools of forked ruby processes}
12
+ spec.summary = %q{Manages pools of forked ruby processes}
13
+ spec.homepage = ""
14
+ spec.license = "MIT"
15
+
16
+ spec.files = `git ls-files`.split($/)
17
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
+ spec.require_paths = ["lib"]
20
+
21
+ spec.add_dependency "gem_logger"
22
+ spec.add_dependency "clamp"
23
+
24
+ spec.add_development_dependency "bundler", "~> 1.3"
25
+ spec.add_development_dependency "rake"
26
+ spec.add_development_dependency "minitest"
27
+ spec.add_development_dependency "minitest_should"
28
+ spec.add_development_dependency "minitest-reporters"
29
+ end
metadata ADDED
@@ -0,0 +1,180 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: trident
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Matt Conway
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2013-11-05 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: gem_logger
15
+ prerelease: false
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - ! '>='
19
+ - !ruby/object:Gem::Version
20
+ version: '0'
21
+ type: :runtime
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ! '>='
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: clamp
29
+ prerelease: false
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - ! '>='
33
+ - !ruby/object:Gem::Version
34
+ version: '0'
35
+ type: :runtime
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ! '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: bundler
43
+ prerelease: false
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - ~>
47
+ - !ruby/object:Gem::Version
48
+ version: '1.3'
49
+ type: :development
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: '1.3'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rake
57
+ prerelease: false
58
+ requirement: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - ! '>='
61
+ - !ruby/object:Gem::Version
62
+ version: '0'
63
+ type: :development
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ! '>='
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: minitest
71
+ prerelease: false
72
+ requirement: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - ! '>='
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
77
+ type: :development
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ! '>='
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: minitest_should
85
+ prerelease: false
86
+ requirement: !ruby/object:Gem::Requirement
87
+ requirements:
88
+ - - ! '>='
89
+ - !ruby/object:Gem::Version
90
+ version: '0'
91
+ type: :development
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ! '>='
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: minitest-reporters
99
+ prerelease: false
100
+ requirement: !ruby/object:Gem::Requirement
101
+ requirements:
102
+ - - ! '>='
103
+ - !ruby/object:Gem::Version
104
+ version: '0'
105
+ type: :development
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ! '>='
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ description: Manages pools of forked ruby processes
112
+ email:
113
+ - matt@conwaysplace.com
114
+ executables:
115
+ - trident
116
+ extensions: []
117
+ extra_rdoc_files: []
118
+ files:
119
+ - .coveralls.yml
120
+ - .gitignore
121
+ - .travis.yml
122
+ - Gemfile
123
+ - LICENSE.txt
124
+ - README.md
125
+ - Rakefile
126
+ - bin/trident
127
+ - lib/trident.rb
128
+ - lib/trident/cli.rb
129
+ - lib/trident/pool.rb
130
+ - lib/trident/pool_handler.rb
131
+ - lib/trident/pool_manager.rb
132
+ - lib/trident/signal_handler.rb
133
+ - lib/trident/utils.rb
134
+ - lib/trident/version.rb
135
+ - test/fixtures/integration_project/config/trident.yml
136
+ - test/integration/trident_test.rb
137
+ - test/test_helper.rb
138
+ - test/unit/trident/cli_test.rb
139
+ - test/unit/trident/pool_handler_test.rb
140
+ - test/unit/trident/pool_manager_test.rb
141
+ - test/unit/trident/pool_test.rb
142
+ - test/unit/trident/signal_handler_test.rb
143
+ - test/unit/trident/utils_test.rb
144
+ - trident.example.yml
145
+ - trident.gemspec
146
+ homepage: ''
147
+ licenses:
148
+ - MIT
149
+ metadata: {}
150
+ post_install_message:
151
+ rdoc_options: []
152
+ require_paths:
153
+ - lib
154
+ required_ruby_version: !ruby/object:Gem::Requirement
155
+ requirements:
156
+ - - ! '>='
157
+ - !ruby/object:Gem::Version
158
+ version: '0'
159
+ required_rubygems_version: !ruby/object:Gem::Requirement
160
+ requirements:
161
+ - - ! '>='
162
+ - !ruby/object:Gem::Version
163
+ version: '0'
164
+ requirements: []
165
+ rubyforge_project:
166
+ rubygems_version: 2.0.7
167
+ signing_key:
168
+ specification_version: 4
169
+ summary: Manages pools of forked ruby processes
170
+ test_files:
171
+ - test/fixtures/integration_project/config/trident.yml
172
+ - test/integration/trident_test.rb
173
+ - test/test_helper.rb
174
+ - test/unit/trident/cli_test.rb
175
+ - test/unit/trident/pool_handler_test.rb
176
+ - test/unit/trident/pool_manager_test.rb
177
+ - test/unit/trident/pool_test.rb
178
+ - test/unit/trident/signal_handler_test.rb
179
+ - test/unit/trident/utils_test.rb
180
+ has_rdoc: