perfectqueue 0.8.6 → 0.8.7
Sign up to get free protection for your applications and to get access to all the features.
- data/ChangeLog +7 -0
- data/README.md +2 -2
- data/lib/perfectqueue/engine.rb +1 -1
- data/lib/perfectqueue/multiprocess/child_process.rb +2 -2
- data/lib/perfectqueue/multiprocess/child_process_monitor.rb +1 -1
- data/lib/perfectqueue/multiprocess/fork_processor.rb +5 -1
- data/lib/perfectqueue/multiprocess/thread_processor.rb +2 -1
- data/lib/perfectqueue/version.rb +1 -1
- data/lib/perfectqueue/worker.rb +2 -2
- metadata +2 -2
data/ChangeLog
CHANGED
@@ -1,4 +1,11 @@
|
|
1
1
|
|
2
|
+
== 2012-07-26 version 0.8.7
|
3
|
+
|
4
|
+
* Worker process changes process name ($0)
|
5
|
+
* Use EMT instead of WINCH signal for immediate binary replace
|
6
|
+
* Use WINCH instead of CONT signal for graceful binary replace
|
7
|
+
|
8
|
+
|
2
9
|
== 2012-07-23 version 0.8.6
|
3
10
|
|
4
11
|
* rdb_backend supports 'max_running' which is added in v0.7.21
|
data/README.md
CHANGED
@@ -146,8 +146,8 @@ PerfectQueue::Worker.run(Dispatch) {
|
|
146
146
|
- **QUIT:** immediate shutdown
|
147
147
|
- **USR1:** graceful restart
|
148
148
|
- **HUP:** immediate restart
|
149
|
-
- **
|
150
|
-
- **
|
149
|
+
- **EMT:** immediate binary replace
|
150
|
+
- **WINCH:** graceful binary replace
|
151
151
|
- **USR2:** reopen log files
|
152
152
|
|
153
153
|
## Configuration
|
data/lib/perfectqueue/engine.rb
CHANGED
@@ -51,7 +51,7 @@ module PerfectQueue
|
|
51
51
|
extra = num_processors - @processors.length
|
52
52
|
if extra > 0
|
53
53
|
extra.times do
|
54
|
-
@processors << @processor_class.new(@runner, config)
|
54
|
+
@processors << @processor_class.new(@runner, @processors.size+1, config)
|
55
55
|
end
|
56
56
|
elsif extra < 0
|
57
57
|
-extra.times do
|
@@ -24,11 +24,11 @@ module PerfectQueue
|
|
24
24
|
new(runner, config, wpipe).run
|
25
25
|
end
|
26
26
|
|
27
|
-
def initialize(runner, config, wpipe)
|
27
|
+
def initialize(runner, processor_id, config, wpipe)
|
28
28
|
@wpipe = wpipe
|
29
29
|
@wpipe.sync = true
|
30
30
|
@request_per_child = 0
|
31
|
-
super(runner, config)
|
31
|
+
super(runner, processor_id, config)
|
32
32
|
@sig = install_signal_handlers
|
33
33
|
end
|
34
34
|
|
@@ -95,7 +95,7 @@ module PerfectQueue
|
|
95
95
|
@log.debug "sending SIGKILL to pid=#{@pid} for immediate stop"
|
96
96
|
Process.kill(:KILL, @pid)
|
97
97
|
else
|
98
|
-
@log.debug "sending
|
98
|
+
@log.debug "sending SIGTERM to pid=#{@pid} for graceful stop"
|
99
99
|
Process.kill(:TERM, @pid)
|
100
100
|
end
|
101
101
|
rescue Errno::ESRCH, Errno::EPERM
|
@@ -20,8 +20,9 @@ module PerfectQueue
|
|
20
20
|
module Multiprocess
|
21
21
|
|
22
22
|
class ForkProcessor
|
23
|
-
def initialize(runner, config)
|
23
|
+
def initialize(runner, processor_id, config)
|
24
24
|
@runner = runner
|
25
|
+
@processor_id = processor_id
|
25
26
|
|
26
27
|
require 'fcntl'
|
27
28
|
@stop = false
|
@@ -124,6 +125,9 @@ module PerfectQueue
|
|
124
125
|
INTER_FORK_LOCK = Mutex.new
|
125
126
|
|
126
127
|
def fork_child
|
128
|
+
# set process name
|
129
|
+
$0 = "perfectqueue:#{@runner} #{@processor_id}"
|
130
|
+
|
127
131
|
@runner.before_fork if @runner.respond_to?(:before_fork) # TODO exception handling
|
128
132
|
|
129
133
|
INTER_FORK_LOCK.lock
|
@@ -20,8 +20,9 @@ module PerfectQueue
|
|
20
20
|
module Multiprocess
|
21
21
|
|
22
22
|
class ThreadProcessor
|
23
|
-
def initialize(runner, config)
|
23
|
+
def initialize(runner, processor_id, config)
|
24
24
|
@runner = runner
|
25
|
+
@processor_id = processor_id
|
25
26
|
|
26
27
|
@running_flag = BlockingFlag.new
|
27
28
|
@finish_flag = BlockingFlag.new
|
data/lib/perfectqueue/version.rb
CHANGED
data/lib/perfectqueue/worker.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: perfectqueue
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.8.
|
4
|
+
version: 0.8.7
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-07-
|
12
|
+
date: 2012-07-26 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: sequel
|