resque-pool 0.6.0 → 0.7.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/.gitignore +9 -0
- data/.travis.yml +13 -0
- data/CODE_OF_CONDUCT.md +74 -0
- data/CONTRIBUTING.md +23 -0
- data/Changelog.md +10 -1
- data/Gemfile +3 -0
- data/Gemfile.lock +102 -0
- data/LICENSE.txt +3 -2
- data/README.md +74 -23
- data/Rakefile +3 -6
- data/config/alternate.yml +4 -0
- data/config/cucumber.yml +2 -0
- data/examples/Gemfile +2 -0
- data/examples/Gemfile.lock +80 -0
- data/examples/Rakefile +8 -0
- data/examples/chef_cookbook/recipes/default.rb +46 -0
- data/examples/chef_cookbook/templates/default/initd.erb +69 -0
- data/examples/chef_cookbook/templates/default/monitrc.erb +6 -0
- data/examples/rails-resque.rake +22 -0
- data/examples/resque-pool.god +43 -0
- data/examples/resque-pool.yml +4 -0
- data/examples/upstart-reload.conf +24 -0
- data/examples/upstart.conf +44 -0
- data/{bin → exe}/resque-pool +0 -0
- data/lib/resque/pool.rb +49 -26
- data/lib/resque/pool/cli.rb +48 -11
- data/lib/resque/pool/config_loaders/file_or_hash_loader.rb +63 -0
- data/lib/resque/pool/config_loaders/throttled.rb +44 -0
- data/lib/resque/pool/killer.rb +40 -0
- data/lib/resque/pool/logging.rb +3 -1
- data/lib/resque/pool/version.rb +1 -1
- data/resque-pool.gemspec +42 -0
- metadata +95 -42
- data/lib/resque/pool/file_or_hash_loader.rb +0 -55
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: e5a0aca3c74178395af21e6f7ddde9add5784556
|
|
4
|
+
data.tar.gz: 9e7b1cc2747b3b82760b2aa637411fd841712ca8
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: d1f568bbd72acb8b1e7d1312222847b5a67d1b77fe95a56d0a8ae935064d20ba4e29a423dc8c6e5b724ae722745a3c57dc4e7ec81efd6d372ae810f028a9b8bf
|
|
7
|
+
data.tar.gz: f4b7118fc2cad3e95de6335bb5131525fc9a3af9ece1e817a423011437fc0558f17ee98b29ad0adf2fff6e516908ee7a3dae05d2d36bd198f4b064307e0f119a
|
data/.gitignore
ADDED
data/.travis.yml
ADDED
data/CODE_OF_CONDUCT.md
ADDED
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
# Contributor Covenant Code of Conduct
|
|
2
|
+
|
|
3
|
+
## Our Pledge
|
|
4
|
+
|
|
5
|
+
In the interest of fostering an open and welcoming environment, we as
|
|
6
|
+
contributors and maintainers pledge to making participation in our project and
|
|
7
|
+
our community a harassment-free experience for everyone, regardless of age, body
|
|
8
|
+
size, disability, ethnicity, gender identity and expression, level of experience,
|
|
9
|
+
nationality, personal appearance, race, religion, or sexual identity and
|
|
10
|
+
orientation.
|
|
11
|
+
|
|
12
|
+
## Our Standards
|
|
13
|
+
|
|
14
|
+
Examples of behavior that contributes to creating a positive environment
|
|
15
|
+
include:
|
|
16
|
+
|
|
17
|
+
* Using welcoming and inclusive language
|
|
18
|
+
* Being respectful of differing viewpoints and experiences
|
|
19
|
+
* Gracefully accepting constructive criticism
|
|
20
|
+
* Focusing on what is best for the community
|
|
21
|
+
* Showing empathy towards other community members
|
|
22
|
+
|
|
23
|
+
Examples of unacceptable behavior by participants include:
|
|
24
|
+
|
|
25
|
+
* The use of sexualized language or imagery and unwelcome sexual attention or
|
|
26
|
+
advances
|
|
27
|
+
* Trolling, insulting/derogatory comments, and personal or political attacks
|
|
28
|
+
* Public or private harassment
|
|
29
|
+
* Publishing others' private information, such as a physical or electronic
|
|
30
|
+
address, without explicit permission
|
|
31
|
+
* Other conduct which could reasonably be considered inappropriate in a
|
|
32
|
+
professional setting
|
|
33
|
+
|
|
34
|
+
## Our Responsibilities
|
|
35
|
+
|
|
36
|
+
Project maintainers are responsible for clarifying the standards of acceptable
|
|
37
|
+
behavior and are expected to take appropriate and fair corrective action in
|
|
38
|
+
response to any instances of unacceptable behavior.
|
|
39
|
+
|
|
40
|
+
Project maintainers have the right and responsibility to remove, edit, or
|
|
41
|
+
reject comments, commits, code, wiki edits, issues, and other contributions
|
|
42
|
+
that are not aligned to this Code of Conduct, or to ban temporarily or
|
|
43
|
+
permanently any contributor for other behaviors that they deem inappropriate,
|
|
44
|
+
threatening, offensive, or harmful.
|
|
45
|
+
|
|
46
|
+
## Scope
|
|
47
|
+
|
|
48
|
+
This Code of Conduct applies both within project spaces and in public spaces
|
|
49
|
+
when an individual is representing the project or its community. Examples of
|
|
50
|
+
representing a project or community include using an official project e-mail
|
|
51
|
+
address, posting via an official social media account, or acting as an appointed
|
|
52
|
+
representative at an online or offline event. Representation of a project may be
|
|
53
|
+
further defined and clarified by project maintainers.
|
|
54
|
+
|
|
55
|
+
## Enforcement
|
|
56
|
+
|
|
57
|
+
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
|
58
|
+
reported by contacting the project team at nick@ekenosen.net. All
|
|
59
|
+
complaints will be reviewed and investigated and will result in a response that
|
|
60
|
+
is deemed necessary and appropriate to the circumstances. The project team is
|
|
61
|
+
obligated to maintain confidentiality with regard to the reporter of an incident.
|
|
62
|
+
Further details of specific enforcement policies may be posted separately.
|
|
63
|
+
|
|
64
|
+
Project maintainers who do not follow or enforce the Code of Conduct in good
|
|
65
|
+
faith may face temporary or permanent repercussions as determined by other
|
|
66
|
+
members of the project's leadership.
|
|
67
|
+
|
|
68
|
+
## Attribution
|
|
69
|
+
|
|
70
|
+
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
|
|
71
|
+
available at [http://contributor-covenant.org/version/1/4][version]
|
|
72
|
+
|
|
73
|
+
[homepage]: http://contributor-covenant.org
|
|
74
|
+
[version]: http://contributor-covenant.org/version/1/4/
|
data/CONTRIBUTING.md
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
Contributing
|
|
2
|
+
============
|
|
3
|
+
|
|
4
|
+
We gladly accept help and bugfixes for resque-pool. We follow the guidelines of
|
|
5
|
+
[semantic versioning](http://semver.org/) for all new gem releases.
|
|
6
|
+
|
|
7
|
+
Pull request guidelines
|
|
8
|
+
-----------------------
|
|
9
|
+
|
|
10
|
+
1. Fork it and clone your new repo
|
|
11
|
+
2. Create a branch (`git checkout -b my_awesome_feature`)
|
|
12
|
+
3. Commit your changes (`git add my/awesome/file.rb; git commit -m "Added my awesome feature"`)
|
|
13
|
+
4. Push your changes to your fork (`git push origin my_awesome_feature`)
|
|
14
|
+
5. Open a [Pull Request](/nevans/resque-pool/pulls)
|
|
15
|
+
|
|
16
|
+
Pull requests should have automated test coverage.
|
|
17
|
+
|
|
18
|
+
New release policy
|
|
19
|
+
------------------
|
|
20
|
+
|
|
21
|
+
New versions won't be released until a release candidate has been running in a
|
|
22
|
+
maintainer's production environment for at least a week. Exceptions only for
|
|
23
|
+
security-related patches.
|
data/Changelog.md
CHANGED
|
@@ -1,3 +1,12 @@
|
|
|
1
|
+
## 0.7.0 _unreleased_
|
|
2
|
+
[full changelog](https://github.com/nevans/resque-pool/compare/v0.6.0...master).
|
|
3
|
+
|
|
4
|
+
One big new feature: `--hot-swap` for [zero-downtime code
|
|
5
|
+
deploys](https://github.com/nevans/resque-pool#zero-downtime-code-deploys).
|
|
6
|
+
Thanks to [joshuaflanagan](https://github.com/joshuaflanagan),
|
|
7
|
+
[brasic](https://github.com/brasic), and
|
|
8
|
+
[ShippingEasy](https://github.com/ShippingEasy)!
|
|
9
|
+
|
|
1
10
|
## 0.6.0
|
|
2
11
|
[full changelog](https://github.com/nevans/resque-pool/compare/v0.5.0...v0.6.0).
|
|
3
12
|
|
|
@@ -8,7 +17,7 @@ thanks to [joshuaflanagan](https://github.com/joshuaflanagan)!
|
|
|
8
17
|
Lots of cleanup in this release. Thanks to the contributers:
|
|
9
18
|
|
|
10
19
|
* [joshuaflanagan](https://github.com/joshuaflanagan) Custom config loader
|
|
11
|
-
* [grosser](https://github/grosser)
|
|
20
|
+
* [grosser](https://github.com/grosser)
|
|
12
21
|
* ship less files in the gem
|
|
13
22
|
* remove trollop dependency
|
|
14
23
|
* remove -n -t -r -n -i commandline options since they were added unintentionally
|
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
PATH
|
|
2
|
+
remote: .
|
|
3
|
+
specs:
|
|
4
|
+
resque-pool (0.7.0)
|
|
5
|
+
rake (>= 10.0, < 13.0)
|
|
6
|
+
resque (>= 1.22, < 3)
|
|
7
|
+
|
|
8
|
+
GEM
|
|
9
|
+
remote: https://rubygems.org/
|
|
10
|
+
specs:
|
|
11
|
+
aruba (0.14.8)
|
|
12
|
+
childprocess (>= 0.6.3, < 1.1.0)
|
|
13
|
+
contracts (~> 0.9)
|
|
14
|
+
cucumber (>= 1.3.19)
|
|
15
|
+
ffi (~> 1.9)
|
|
16
|
+
rspec-expectations (>= 2.99)
|
|
17
|
+
thor (~> 0.19)
|
|
18
|
+
backports (3.12.0)
|
|
19
|
+
builder (3.2.3)
|
|
20
|
+
childprocess (1.0.1)
|
|
21
|
+
rake (< 13.0)
|
|
22
|
+
contracts (0.16.0)
|
|
23
|
+
cucumber (3.1.2)
|
|
24
|
+
builder (>= 2.1.2)
|
|
25
|
+
cucumber-core (~> 3.2.0)
|
|
26
|
+
cucumber-expressions (~> 6.0.1)
|
|
27
|
+
cucumber-wire (~> 0.0.1)
|
|
28
|
+
diff-lcs (~> 1.3)
|
|
29
|
+
gherkin (~> 5.1.0)
|
|
30
|
+
multi_json (>= 1.7.5, < 2.0)
|
|
31
|
+
multi_test (>= 0.1.2)
|
|
32
|
+
cucumber-core (3.2.1)
|
|
33
|
+
backports (>= 3.8.0)
|
|
34
|
+
cucumber-tag_expressions (~> 1.1.0)
|
|
35
|
+
gherkin (~> 5.0)
|
|
36
|
+
cucumber-expressions (6.0.1)
|
|
37
|
+
cucumber-tag_expressions (1.1.1)
|
|
38
|
+
cucumber-wire (0.0.1)
|
|
39
|
+
diff-lcs (1.3)
|
|
40
|
+
ffi (1.10.0)
|
|
41
|
+
gherkin (5.1.0)
|
|
42
|
+
hpricot (0.8.6)
|
|
43
|
+
mono_logger (1.1.0)
|
|
44
|
+
multi_json (1.13.1)
|
|
45
|
+
multi_test (0.1.2)
|
|
46
|
+
mustache (1.1.0)
|
|
47
|
+
mustermann (1.0.3)
|
|
48
|
+
rack (2.0.6)
|
|
49
|
+
rack-protection (2.0.5)
|
|
50
|
+
rack
|
|
51
|
+
rake (12.3.2)
|
|
52
|
+
rdiscount (2.2.0.1)
|
|
53
|
+
redis (4.1.0)
|
|
54
|
+
redis-namespace (1.6.0)
|
|
55
|
+
redis (>= 3.0.4)
|
|
56
|
+
resque (2.0.0)
|
|
57
|
+
mono_logger (~> 1.0)
|
|
58
|
+
multi_json (~> 1.0)
|
|
59
|
+
redis-namespace (~> 1.6)
|
|
60
|
+
sinatra (>= 0.9.2)
|
|
61
|
+
vegas (~> 0.1.2)
|
|
62
|
+
ronn (0.7.3)
|
|
63
|
+
hpricot (>= 0.8.2)
|
|
64
|
+
mustache (>= 0.7.0)
|
|
65
|
+
rdiscount (>= 1.5.8)
|
|
66
|
+
rspec (3.8.0)
|
|
67
|
+
rspec-core (~> 3.8.0)
|
|
68
|
+
rspec-expectations (~> 3.8.0)
|
|
69
|
+
rspec-mocks (~> 3.8.0)
|
|
70
|
+
rspec-core (3.8.0)
|
|
71
|
+
rspec-support (~> 3.8.0)
|
|
72
|
+
rspec-expectations (3.8.2)
|
|
73
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
|
74
|
+
rspec-support (~> 3.8.0)
|
|
75
|
+
rspec-mocks (3.8.0)
|
|
76
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
|
77
|
+
rspec-support (~> 3.8.0)
|
|
78
|
+
rspec-support (3.8.0)
|
|
79
|
+
sinatra (2.0.5)
|
|
80
|
+
mustermann (~> 1.0)
|
|
81
|
+
rack (~> 2.0)
|
|
82
|
+
rack-protection (= 2.0.5)
|
|
83
|
+
tilt (~> 2.0)
|
|
84
|
+
thor (0.20.3)
|
|
85
|
+
tilt (2.0.9)
|
|
86
|
+
vegas (0.1.11)
|
|
87
|
+
rack (>= 1.0.0)
|
|
88
|
+
|
|
89
|
+
PLATFORMS
|
|
90
|
+
ruby
|
|
91
|
+
|
|
92
|
+
DEPENDENCIES
|
|
93
|
+
aruba (~> 0.14.0)
|
|
94
|
+
bundler (~> 2.0)
|
|
95
|
+
cucumber (~> 3.0)
|
|
96
|
+
mustache
|
|
97
|
+
resque-pool!
|
|
98
|
+
ronn
|
|
99
|
+
rspec (~> 3.8)
|
|
100
|
+
|
|
101
|
+
BUNDLED WITH
|
|
102
|
+
2.0.1
|
data/LICENSE.txt
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
The MIT License (MIT)
|
|
2
|
+
|
|
3
|
+
Copyright (C) 2019 by Nicholas Evans, and other contributors
|
|
2
4
|
|
|
3
5
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
4
6
|
of this software and associated documentation files (the "Software"), to deal
|
|
@@ -17,4 +19,3 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
|
17
19
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
18
20
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
19
21
|
THE SOFTWARE.
|
|
20
|
-
|
data/README.md
CHANGED
|
@@ -4,23 +4,23 @@ Resque Pool
|
|
|
4
4
|
[](https://travis-ci.org/nevans/resque-pool)
|
|
5
5
|
[](https://gemnasium.com/nevans/resque-pool)
|
|
6
6
|
|
|
7
|
-
Resque pool is a
|
|
8
|
-
[resque](https://github.com/defunkt/resque) workers.
|
|
9
|
-
manages your workers for you, starting up the appropriate number of workers
|
|
10
|
-
each worker type.
|
|
7
|
+
Resque pool is a daemon for managing a pool of
|
|
8
|
+
[resque](https://github.com/defunkt/resque) workers. With a simple config file,
|
|
9
|
+
it manages your workers for you, starting up the appropriate number of workers
|
|
10
|
+
for each worker type.
|
|
11
11
|
|
|
12
12
|
Benefits
|
|
13
13
|
---------
|
|
14
14
|
|
|
15
15
|
* Less config - With a simple YAML file, you can start up a pool daemon, and it
|
|
16
|
-
will monitor your workers for you.
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
when you are managing many workers.
|
|
16
|
+
will monitor your workers for you.
|
|
17
|
+
* Less memory - If you are using ruby 2.0+ (with copy-on-write safe garbage
|
|
18
|
+
collection), this should save you a *lot* of memory when you are managing many
|
|
19
|
+
workers.
|
|
21
20
|
* Faster startup - when you start many workers at once, they would normally
|
|
22
|
-
compete for CPU as they load their environments. Resque-pool can load
|
|
23
|
-
|
|
21
|
+
compete for CPU as they load their environments. Resque-pool can load your
|
|
22
|
+
application once, then rapidly fork the workers after setup. If a worker
|
|
23
|
+
crashes or is killed, a new worker will start up and take its place right away.
|
|
24
24
|
|
|
25
25
|
Upgrading?
|
|
26
26
|
-----------
|
|
@@ -80,7 +80,7 @@ end
|
|
|
80
80
|
For normal work with fresh resque and resque-scheduler gems add next lines in lib/rake/resque.rake
|
|
81
81
|
|
|
82
82
|
```ruby
|
|
83
|
-
task
|
|
83
|
+
task "resque:pool:setup" do
|
|
84
84
|
Resque::Pool.after_prefork do |job|
|
|
85
85
|
Resque.redis.client.reconnect
|
|
86
86
|
end
|
|
@@ -164,7 +164,7 @@ For example, if you wanted to vary the number of worker processes based on a
|
|
|
164
164
|
value stored in Redis, you could do something like:
|
|
165
165
|
|
|
166
166
|
```ruby
|
|
167
|
-
task resque:pool:setup do
|
|
167
|
+
task "resque:pool:setup" do
|
|
168
168
|
Resque::Pool.config_loader = lambda do |env|
|
|
169
169
|
worker_count = Redis.current.get("pool_workers_#{env}").to_i
|
|
170
170
|
{"queueA,queueB" => worker_count }
|
|
@@ -172,6 +172,17 @@ task resque:pool:setup do
|
|
|
172
172
|
end
|
|
173
173
|
```
|
|
174
174
|
|
|
175
|
+
In order to query ActiveRecord, be sure establish the database connection:
|
|
176
|
+
|
|
177
|
+
```ruby
|
|
178
|
+
task "resque:pool:setup" do
|
|
179
|
+
Resque::Pool.config_loader = lambda do |env|
|
|
180
|
+
ActiveRecord::Base.establish_connection
|
|
181
|
+
JobQueue.pluck(:name, :workers).to_h
|
|
182
|
+
end
|
|
183
|
+
end
|
|
184
|
+
```
|
|
185
|
+
|
|
175
186
|
The configuration loader's `#call` method will be invoked about once a second.
|
|
176
187
|
This allows the configuration to constantly change, allowing you to scale the
|
|
177
188
|
number of workers up or down based on different conditions.
|
|
@@ -180,14 +191,54 @@ returns. It can optionally implement a `#reset!` method, which will be invoked
|
|
|
180
191
|
when the HUP signal is received, allowing the loader to flush its cache, or
|
|
181
192
|
perform any other re-initialization.
|
|
182
193
|
|
|
194
|
+
You can reduce the frequency that your configuration loader is called by
|
|
195
|
+
wrapping it with `Resque::Pool::ConfigLoaders::Throttled` and specifying a time
|
|
196
|
+
(in seconds) to cache the previous value:
|
|
197
|
+
|
|
198
|
+
```ruby
|
|
199
|
+
task "resque:pool:setup" do
|
|
200
|
+
redis_loader = lambda do |env|
|
|
201
|
+
worker_count = Redis.current.get("pool_workers_#{env}").to_i
|
|
202
|
+
{ "queueA,queueB" => worker_count }
|
|
203
|
+
end
|
|
204
|
+
|
|
205
|
+
# calls through to redis_loader at most once per 10 seconds
|
|
206
|
+
Resque::Pool.config_loader = Resque::Pool::ConfigLoaders::Throttled.new(
|
|
207
|
+
redis_loader, period: 10
|
|
208
|
+
)
|
|
209
|
+
end
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
See [the spec](spec/config_loaders/throttled_spec.rb) for more details.
|
|
213
|
+
|
|
214
|
+
Zero-downtime code deploys
|
|
215
|
+
--------------------------
|
|
216
|
+
|
|
217
|
+
In a production environment you will likely want to manage the daemon using a
|
|
218
|
+
process supervisor like `runit` or `god` or an init system like `systemd` or
|
|
219
|
+
`upstart`. Example configurations for some of these are included in the
|
|
220
|
+
`examples` directory. With these systems, `reload` typically sends a `HUP`
|
|
221
|
+
signal, which will reload the configuration but not application code. The
|
|
222
|
+
simplest way to make workers pick up new code after a deploy is to stop and
|
|
223
|
+
start the daemon. This will result in a period where new jobs are not being
|
|
224
|
+
processed.
|
|
225
|
+
|
|
226
|
+
To avoid this downtime, leave the old pool running and start a new pool with
|
|
227
|
+
`resque-pool --hot-swap`.
|
|
228
|
+
|
|
229
|
+
The `--hot-swap` flag will turn off pidfiles (so multiple pools can run at
|
|
230
|
+
once), enable a lock file (so your init system knows when the pool is running),
|
|
231
|
+
and shut down other pools _after_ the workers have started for this pool.
|
|
232
|
+
These behaviors can also be configured separately (see `resque-pool --help`).
|
|
233
|
+
The `upstart` configs in the `examples` directory demonstrate how to supervise a
|
|
234
|
+
daemonized pool with hot swap.
|
|
235
|
+
|
|
236
|
+
Please be aware that this approach uses more memory than a simple restart, since
|
|
237
|
+
two copies of the application code are loaded at once. _TODO: [#139](https://github.com/nevans/resque-pool/issues/139)_
|
|
238
|
+
|
|
183
239
|
Other Features
|
|
184
240
|
--------------
|
|
185
241
|
|
|
186
|
-
An example chef cookbook is provided (and should Just Work at Engine Yard as
|
|
187
|
-
is; just provide a `/data/#{app_name}/shared/config/resque-pool.yml` on your
|
|
188
|
-
utility instances). Even if you don't use chef you can use the example init.d
|
|
189
|
-
and monitrc erb templates in `examples/chef_cookbook/templates/default`.
|
|
190
|
-
|
|
191
242
|
You can also start a pool manager via `rake resque:pool` or from a plain old
|
|
192
243
|
ruby script by calling `Resque::Pool.run`.
|
|
193
244
|
|
|
@@ -197,6 +248,10 @@ their current job) if the manager process disappears before them.
|
|
|
197
248
|
You can specify an alternate config file by setting the `RESQUE_POOL_CONFIG` or
|
|
198
249
|
with the `--config` command line option.
|
|
199
250
|
|
|
251
|
+
See the `examples` directory for example `chef` cookbook and
|
|
252
|
+
`god` config. In the `chef` cookbook, you can also find example `init.d` and
|
|
253
|
+
`muninrc` templates (all very out of date, pull requests welcome).
|
|
254
|
+
|
|
200
255
|
TODO
|
|
201
256
|
-----
|
|
202
257
|
|
|
@@ -205,8 +260,4 @@ See [the TODO list](https://github.com/nevans/resque-pool/issues) at github issu
|
|
|
205
260
|
Contributors
|
|
206
261
|
-------------
|
|
207
262
|
|
|
208
|
-
|
|
209
|
-
* Stephen Celis (increased gemspec sanity)
|
|
210
|
-
* Vincent Agnello, Robert Kamunyori, Paul Kauders; for pairing with me at
|
|
211
|
-
B'more on Rails Open Source Hack Nights. :)
|
|
212
|
-
|
|
263
|
+
See [list of contributors on github](https://github.com/nevans/resque-pool/graphs/contributors) or [in the changelog](https://github.com/nevans/resque-pool/blob/master/Changelog.md)
|
data/Rakefile
CHANGED
|
@@ -1,20 +1,17 @@
|
|
|
1
|
-
require 'bundler/setup'
|
|
2
1
|
require 'bundler/gem_tasks'
|
|
3
2
|
|
|
4
3
|
# for loading the example config file in config/resque-pool.yml
|
|
5
4
|
require 'resque/pool/tasks'
|
|
6
5
|
|
|
7
6
|
require 'rspec/core/rake_task'
|
|
8
|
-
RSpec::Core::RakeTask.new(:spec)
|
|
9
|
-
t.rspec_opts = ["-c", "-f progress"]
|
|
10
|
-
end
|
|
7
|
+
RSpec::Core::RakeTask.new(:spec)
|
|
11
8
|
|
|
12
9
|
require 'cucumber/rake/task'
|
|
13
10
|
Cucumber::Rake::Task.new(:features) do |c|
|
|
14
11
|
c.profile = "rake"
|
|
15
12
|
end
|
|
16
13
|
|
|
17
|
-
task :default => [
|
|
14
|
+
task :default => %i[spec features]
|
|
18
15
|
|
|
19
16
|
rule(/\.[1-9]$/ => [proc { |tn| "#{tn}.ronn" }]) do |t|
|
|
20
17
|
name = Resque::Pool.name.sub('::','-').upcase
|
|
@@ -22,7 +19,7 @@ rule(/\.[1-9]$/ => [proc { |tn| "#{tn}.ronn" }]) do |t|
|
|
|
22
19
|
|
|
23
20
|
manual = '--manual "%s"' % name
|
|
24
21
|
organization = '--organization "%s"' % version
|
|
25
|
-
sh "ronn #{manual} #{organization} <#{t.source} >#{t.name}"
|
|
22
|
+
sh "bundle exec ronn #{manual} #{organization} <#{t.source} >#{t.name}"
|
|
26
23
|
end
|
|
27
24
|
|
|
28
25
|
file 'man/resque-pool.1'
|