foreverb 0.3.0.f → 0.3.0.g
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.
- data/lib/forever/base.rb +19 -3
- data/lib/forever/version.rb +1 -1
- metadata +6 -7
data/lib/forever/base.rb
CHANGED
@@ -85,19 +85,24 @@ module Forever
|
|
85
85
|
# Invoke our before :all filters
|
86
86
|
filters[:before][:all].each { |block| safe_call(block) }
|
87
87
|
|
88
|
+
# Store pids of childs
|
89
|
+
pids = []
|
90
|
+
|
88
91
|
# Start deamons
|
89
92
|
until stopping?
|
90
93
|
current_queue = 1
|
94
|
+
|
91
95
|
jobs.each do |job|
|
92
96
|
next unless job.time?(Time.now)
|
93
97
|
if queue && current_queue > queue
|
94
|
-
puts "\n\nThe queue limit
|
98
|
+
puts "\n\nThe queue limit of #{queue} has been exceeded.\n\n"
|
95
99
|
on_limit_exceeded ? on_limit_exceeded.call : sleep(60)
|
96
100
|
break
|
97
101
|
end
|
98
102
|
if forking
|
99
103
|
begin
|
100
|
-
|
104
|
+
GC.start
|
105
|
+
pids << Process.fork { job_call(job) }
|
101
106
|
rescue Errno::EAGAIN
|
102
107
|
puts "\n\nWait all processes since os cannot create a new one\n\n"
|
103
108
|
Process.waitall
|
@@ -107,6 +112,17 @@ module Forever
|
|
107
112
|
end
|
108
113
|
current_queue += 1
|
109
114
|
end
|
115
|
+
|
116
|
+
# Detach zombies, our ps will be happier
|
117
|
+
pids.each do |p|
|
118
|
+
begin
|
119
|
+
Process.getpgid(p)
|
120
|
+
rescue Errno::ESRCH
|
121
|
+
pids.delete(p)
|
122
|
+
Process.detach(p)
|
123
|
+
end
|
124
|
+
end
|
125
|
+
|
110
126
|
sleep 0.5
|
111
127
|
end
|
112
128
|
|
@@ -229,7 +245,7 @@ module Forever
|
|
229
245
|
##
|
230
246
|
# Remove the daemon from the config file
|
231
247
|
#
|
232
|
-
def remove
|
248
|
+
def remove
|
233
249
|
print "[\e[90m%s\e[0m] Removed the daemon from the config " % name
|
234
250
|
config_was = File.exist?(FOREVER_PATH) ? YAML.load_file(FOREVER_PATH) : []
|
235
251
|
config_was.delete_if { |conf| conf[:file] == file }
|
data/lib/forever/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: foreverb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 60
|
5
5
|
prerelease: 6
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 3
|
9
9
|
- 0
|
10
|
-
-
|
11
|
-
version: 0.3.0.
|
10
|
+
- g
|
11
|
+
version: 0.3.0.g
|
12
12
|
platform: ruby
|
13
13
|
authors:
|
14
14
|
- DAddYE
|
@@ -16,8 +16,7 @@ autorequire:
|
|
16
16
|
bindir: bin
|
17
17
|
cert_chain: []
|
18
18
|
|
19
|
-
date:
|
20
|
-
default_executable:
|
19
|
+
date: 2012-01-24 00:00:00 Z
|
21
20
|
dependencies:
|
22
21
|
- !ruby/object:Gem::Dependency
|
23
22
|
name: thor
|
@@ -77,7 +76,6 @@ files:
|
|
77
76
|
- spec/cli_spec.rb
|
78
77
|
- spec/foreverb_spec.rb
|
79
78
|
- spec/spec_helper.rb
|
80
|
-
has_rdoc: true
|
81
79
|
homepage: https://github.com/daddye/forever
|
82
80
|
licenses: []
|
83
81
|
|
@@ -109,7 +107,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
109
107
|
requirements: []
|
110
108
|
|
111
109
|
rubyforge_project: foreverb
|
112
|
-
rubygems_version: 1.
|
110
|
+
rubygems_version: 1.8.15
|
113
111
|
signing_key:
|
114
112
|
specification_version: 3
|
115
113
|
summary: Small daemon framework for ruby
|
@@ -117,3 +115,4 @@ test_files:
|
|
117
115
|
- spec/cli_spec.rb
|
118
116
|
- spec/foreverb_spec.rb
|
119
117
|
- spec/spec_helper.rb
|
118
|
+
has_rdoc:
|