trident 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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: