resque-pool 0.4.0.rc3 → 0.4.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/README.md +0 -11
- data/lib/resque/pool.rb +10 -12
- data/lib/resque/pool/cli.rb +0 -13
- data/lib/resque/pool/pooled_worker.rb +4 -16
- data/lib/resque/pool/version.rb +1 -1
- metadata +5 -5
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: e53fe4edb6e3714b9290bb7c5aaa38cfc0cba522
|
|
4
|
+
data.tar.gz: 14d005755bff347031cb00eca84a32cfe0745e74
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 70c830c5077481580b4dfc228f65607e1af4f8a8577a4993965820a4422e96422391df3fa65264e60f9f16169a9279bab231b7fac5c30ec0c06e65874564b334
|
|
7
|
+
data.tar.gz: da6496b4c8174cd7196a0175e4fe6abe111337b0ff99a442b1e82eb68a869924352298ad55b8a8855bb50a563703422d0d1aac24da82b937a3b64da4336c69f5
|
data/README.md
CHANGED
|
@@ -70,17 +70,6 @@ the following into `lib/tasks/resque.rake`:
|
|
|
70
70
|
end
|
|
71
71
|
end
|
|
72
72
|
|
|
73
|
-
|
|
74
|
-
For normal work with fresh resque and resque-scheduler gems add next lines in lib/rake/resque.rake
|
|
75
|
-
|
|
76
|
-
```ruby
|
|
77
|
-
task 'resque:pool:setup' do
|
|
78
|
-
Resque::Pool.after_prefork do |job|
|
|
79
|
-
Resque.redis.client.reconnect
|
|
80
|
-
end
|
|
81
|
-
end
|
|
82
|
-
```
|
|
83
|
-
|
|
84
73
|
### Start the pool manager
|
|
85
74
|
|
|
86
75
|
Then you can start the queues via:
|
data/lib/resque/pool.rb
CHANGED
|
@@ -59,7 +59,7 @@ module Resque
|
|
|
59
59
|
# Config: class methods to start up the pool using the default config {{{
|
|
60
60
|
|
|
61
61
|
@config_files = ["resque-pool.yml", "config/resque-pool.yml"]
|
|
62
|
-
class << self; attr_accessor :config_files, :app_name
|
|
62
|
+
class << self; attr_accessor :config_files, :app_name; end
|
|
63
63
|
|
|
64
64
|
def self.app_name
|
|
65
65
|
@app_name ||= File.basename(Dir.pwd)
|
|
@@ -215,13 +215,17 @@ module Resque
|
|
|
215
215
|
when :INT
|
|
216
216
|
graceful_worker_shutdown!(signal)
|
|
217
217
|
when :TERM
|
|
218
|
-
|
|
219
|
-
when "graceful_worker_shutdown_and_wait"
|
|
220
|
-
graceful_worker_shutdown_and_wait!(signal)
|
|
221
|
-
when "graceful_worker_shutdown"
|
|
218
|
+
if term_child
|
|
222
219
|
graceful_worker_shutdown!(signal)
|
|
223
220
|
else
|
|
224
|
-
|
|
221
|
+
case self.class.term_behavior
|
|
222
|
+
when "graceful_worker_shutdown_and_wait"
|
|
223
|
+
graceful_worker_shutdown_and_wait!(signal)
|
|
224
|
+
when "graceful_worker_shutdown"
|
|
225
|
+
graceful_worker_shutdown!(signal)
|
|
226
|
+
else
|
|
227
|
+
shutdown_everything_now!(signal)
|
|
228
|
+
end
|
|
225
229
|
end
|
|
226
230
|
end
|
|
227
231
|
end
|
|
@@ -344,7 +348,6 @@ module Resque
|
|
|
344
348
|
end
|
|
345
349
|
|
|
346
350
|
def signal_all_workers(signal)
|
|
347
|
-
log "Sending #{signal} to all workers"
|
|
348
351
|
all_pids.each do |pid|
|
|
349
352
|
Process.kill signal, pid
|
|
350
353
|
end
|
|
@@ -372,7 +375,6 @@ module Resque
|
|
|
372
375
|
def spawn_missing_workers_for(queues)
|
|
373
376
|
worker_delta_for(queues).times do |nr|
|
|
374
377
|
spawn_worker!(queues)
|
|
375
|
-
sleep Resque::Pool.spawn_delay if Resque::Pool.spawn_delay
|
|
376
378
|
end
|
|
377
379
|
end
|
|
378
380
|
|
|
@@ -409,10 +411,6 @@ module Resque
|
|
|
409
411
|
worker = ::Resque::Worker.new(*queues)
|
|
410
412
|
worker.term_timeout = ENV['RESQUE_TERM_TIMEOUT'] || 4.0
|
|
411
413
|
worker.term_child = ENV['TERM_CHILD']
|
|
412
|
-
if worker.respond_to?(:run_at_exit_hooks=)
|
|
413
|
-
# resque doesn't support this until 1.24, but we support 1.22
|
|
414
|
-
worker.run_at_exit_hooks = ENV['RUN_AT_EXIT_HOOKS'] || false
|
|
415
|
-
end
|
|
416
414
|
if ENV['LOGGING'] || ENV['VERBOSE']
|
|
417
415
|
worker.verbose = ENV['LOGGING'] || ENV['VERBOSE']
|
|
418
416
|
end
|
data/lib/resque/pool/cli.rb
CHANGED
|
@@ -1,13 +1,10 @@
|
|
|
1
1
|
require 'trollop'
|
|
2
2
|
require 'resque/pool'
|
|
3
|
-
require 'resque/pool/logging'
|
|
4
3
|
require 'fileutils'
|
|
5
4
|
|
|
6
5
|
module Resque
|
|
7
6
|
class Pool
|
|
8
7
|
module CLI
|
|
9
|
-
include Logging
|
|
10
|
-
extend Logging
|
|
11
8
|
extend self
|
|
12
9
|
|
|
13
10
|
def run
|
|
@@ -41,7 +38,6 @@ where [options] are:
|
|
|
41
38
|
opt :nosync, "Don't sync logfiles on every write"
|
|
42
39
|
opt :pidfile, "PID file location", :type => String, :short => "-p"
|
|
43
40
|
opt :environment, "Set RAILS_ENV/RACK_ENV/RESQUE_ENV", :type => String, :short => "-E"
|
|
44
|
-
opt :spawn_delay, "Delay in milliseconds between spawning missing workers", :type => Integer, :short => "-s"
|
|
45
41
|
opt :term_graceful_wait, "On TERM signal, wait for workers to shut down gracefully"
|
|
46
42
|
opt :term_graceful, "On TERM signal, shut down workers gracefully"
|
|
47
43
|
opt :term_immediate, "On TERM signal, shut down workers immediately (default)"
|
|
@@ -117,15 +113,6 @@ where [options] are:
|
|
|
117
113
|
Resque::Pool.term_behavior = "graceful_worker_shutdown_and_wait"
|
|
118
114
|
elsif opts[:term_graceful]
|
|
119
115
|
Resque::Pool.term_behavior = "graceful_worker_shutdown"
|
|
120
|
-
elsif ENV["TERM_CHILD"]
|
|
121
|
-
log "TERM_CHILD enabled, so will user 'term-graceful-and-wait' behaviour"
|
|
122
|
-
Resque::Pool.term_behavior = "graceful_worker_shutdown_and_wait"
|
|
123
|
-
end
|
|
124
|
-
if ENV.include?("DYNO") && !ENV["TERM_CHILD"]
|
|
125
|
-
log "WARNING: Are you running on Heroku? You should probably set TERM_CHILD=1"
|
|
126
|
-
end
|
|
127
|
-
if opts[:spawn_delay]
|
|
128
|
-
Resque::Pool.spawn_delay = opts[:spawn_delay] * 0.001
|
|
129
116
|
end
|
|
130
117
|
end
|
|
131
118
|
|
|
@@ -2,26 +2,14 @@ require 'resque/worker'
|
|
|
2
2
|
|
|
3
3
|
class Resque::Pool
|
|
4
4
|
module PooledWorker
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
@pool_master_pid = Process.pid
|
|
8
|
-
initialize_without_pool(*args)
|
|
9
|
-
end
|
|
10
|
-
|
|
11
|
-
def pool_master_has_gone_away?
|
|
12
|
-
@pool_master_pid && @pool_master_pid != Process.ppid
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
def shutdown_with_pool?
|
|
16
|
-
shutdown_without_pool? || pool_master_has_gone_away?
|
|
5
|
+
def shutdown_with_pool
|
|
6
|
+
shutdown_without_pool || Process.ppid == 1
|
|
17
7
|
end
|
|
18
8
|
|
|
19
9
|
def self.included(base)
|
|
20
10
|
base.instance_eval do
|
|
21
|
-
alias_method :
|
|
22
|
-
alias_method :
|
|
23
|
-
alias_method :shutdown_without_pool?, :shutdown?
|
|
24
|
-
alias_method :shutdown?, :shutdown_with_pool?
|
|
11
|
+
alias_method :shutdown_without_pool, :shutdown?
|
|
12
|
+
alias_method :shutdown?, :shutdown_with_pool
|
|
25
13
|
end
|
|
26
14
|
end
|
|
27
15
|
|
data/lib/resque/pool/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: resque-pool
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.4.0
|
|
4
|
+
version: 0.4.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- nicholas a. evans
|
|
@@ -30,14 +30,14 @@ dependencies:
|
|
|
30
30
|
requirements:
|
|
31
31
|
- - ~>
|
|
32
32
|
- !ruby/object:Gem::Version
|
|
33
|
-
version: '
|
|
33
|
+
version: '1.16'
|
|
34
34
|
type: :runtime
|
|
35
35
|
prerelease: false
|
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
|
37
37
|
requirements:
|
|
38
38
|
- - ~>
|
|
39
39
|
- !ruby/object:Gem::Version
|
|
40
|
-
version: '
|
|
40
|
+
version: '1.16'
|
|
41
41
|
- !ruby/object:Gem::Dependency
|
|
42
42
|
name: rake
|
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -172,9 +172,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
172
172
|
version: '0'
|
|
173
173
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
174
174
|
requirements:
|
|
175
|
-
- - '
|
|
175
|
+
- - '>='
|
|
176
176
|
- !ruby/object:Gem::Version
|
|
177
|
-
version:
|
|
177
|
+
version: '0'
|
|
178
178
|
requirements: []
|
|
179
179
|
rubyforge_project:
|
|
180
180
|
rubygems_version: 2.0.14
|