distributed_demo 1.0 → 1.0.1

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.
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