forkr 0.1.6 → 0.1.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/forkr.gemspec +2 -2
- data/lib/forkr.rb +23 -20
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f0539b882a7e449399d84d53b5f84514db12af81
|
4
|
+
data.tar.gz: 41f718fe40fb072bd4c5e6f0e28953ac97f0d917
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6c4f42032dee53cbfd4898dc0bdc9fae67146afdd68fe132c6d5338f4a9b21115057b8b981b70fde957a033266d66b471f2f06dd3313471c42c3de94c26802b6
|
7
|
+
data.tar.gz: bc1dd886ec97c7129f362bc56b2c9cd4fa4d98a5c6a45c7f93e1d74c2e7ebc8dfa10221380cd5bff34cf0f12c6fd7449be0bb16b307d63482b8048e08388e8fe
|
data/forkr.gemspec
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = 'forkr'
|
3
|
-
s.version = '0.1.
|
4
|
-
s.date = '
|
3
|
+
s.version = '0.1.7'
|
4
|
+
s.date = '2015-03-22'
|
5
5
|
s.summary = "A pre-forking worker host - shamelessly inspired by unicorn."
|
6
6
|
s.description = "Forkr is a preforking worker host, shamelessly inspired by unicorn. It exists to easily fork and scale ruby programs which aren't rack-based."
|
7
7
|
s.authors = ["Trey Evans"]
|
data/lib/forkr.rb
CHANGED
@@ -95,29 +95,31 @@ class Forkr
|
|
95
95
|
end
|
96
96
|
|
97
97
|
def master_loop
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
98
|
+
catch(:bail_because_im_a_worker) do
|
99
|
+
ensure_right_worker_count
|
100
|
+
loop do
|
101
|
+
fds = IO.select([@inbound],nil,nil,2)
|
102
|
+
unless fds.nil?
|
103
|
+
data_read = fds.first.first.read(1)
|
104
|
+
if data_read == "I"
|
105
|
+
shutdown_using(:INT)
|
106
|
+
elsif data_read == "T"
|
107
|
+
shutdown_using(:TERM)
|
108
|
+
elsif data_read == "Q"
|
109
|
+
shutdown_using(:QUIT)
|
110
|
+
elsif data_read == "+"
|
111
|
+
increment_workers
|
112
|
+
elsif data_read == "-"
|
113
|
+
decrement_workers
|
114
|
+
end
|
113
115
|
end
|
116
|
+
prune_workers
|
117
|
+
ensure_right_worker_count
|
114
118
|
end
|
115
|
-
|
116
|
-
|
119
|
+
reap_all_workers
|
120
|
+
@outbound.close
|
121
|
+
@inbound.close
|
117
122
|
end
|
118
|
-
reap_all_workers
|
119
|
-
@outbound.close
|
120
|
-
@inbound.close
|
121
123
|
end
|
122
124
|
|
123
125
|
def reap_all_workers
|
@@ -163,6 +165,7 @@ class Forkr
|
|
163
165
|
@outbound.close
|
164
166
|
$stderr.puts "Worker spawned as #{$$}!"
|
165
167
|
@worker_client.run
|
168
|
+
throw(:bail_because_im_a_worker)
|
166
169
|
end
|
167
170
|
|
168
171
|
def child_dead?(pid)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: forkr
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Trey Evans
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-03-22 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Forkr is a preforking worker host, shamelessly inspired by unicorn. It
|
14
14
|
exists to easily fork and scale ruby programs which aren't rack-based.
|