distributed_demo 1.0 → 1.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/client.rb +12 -2
- metadata +1 -1
data/lib/client.rb
CHANGED
@@ -29,7 +29,14 @@ module Dist
|
|
29
29
|
|
30
30
|
# spin up rack app
|
31
31
|
require "roles/#{role}/app"
|
32
|
-
|
32
|
+
@webserver = Thread.new do
|
33
|
+
begin
|
34
|
+
require 'mongrel'
|
35
|
+
Rack::Handler::Mongrel.run App.new, :Port => rack_port.to_i
|
36
|
+
rescue LoadError
|
37
|
+
Rack::Handler::WEBrick.run App.new, :Port => rack_port.to_i
|
38
|
+
end
|
39
|
+
end
|
33
40
|
|
34
41
|
while true
|
35
42
|
receive_message Messages::REQUEST_HEARTBEAT
|
@@ -42,7 +49,10 @@ module Dist
|
|
42
49
|
private
|
43
50
|
|
44
51
|
def leave_a_will
|
45
|
-
graceful_death = lambda {
|
52
|
+
graceful_death = lambda {
|
53
|
+
@socket.close rescue nil
|
54
|
+
@webserver.kill! if @webserver
|
55
|
+
}
|
46
56
|
%w[INT TERM].each { |code| Signal.trap(code, &graceful_death) }
|
47
57
|
end
|
48
58
|
|