distributed_demo 1.0 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (2) hide show
  1. data/lib/client.rb +12 -2
  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
- Thread.new { Rack::Handler::Mongrel.run App.new, :Port => rack_port.to_i }
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 { @socket.close }
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
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: distributed_demo
3
3
  version: !ruby/object:Gem::Version
4
- version: "1.0"
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tyler McMullen