templates/collectd/script/collectd/collectd-runner.rb in rubber-2.13.1 vs templates/collectd/script/collectd/collectd-runner.rb in rubber-2.14.0
- old
+ new
@@ -75,20 +75,38 @@
#
STDERR.puts "#{Time.now}: Starting rubber-collectd execution loop"
loop do
start_time = Time.now.to_i
- scripts.each do |script|
- fork do
- begin
- load script
- rescue Exception => e
- STDERR.puts("#{script}: #{e}")
+ if defined?(JRUBY_VERSION)
+ threads = []
+
+ scripts.each do |script|
+ threads << Thread.new do
+ begin
+ load script
+ rescue Exception => e
+ STDERR.puts("#{script}: #{e}")
+ end
end
end
+
+ threads.each(&:join)
+
+ else
+ scripts.each do |script|
+ fork do
+ begin
+ load script
+ rescue Exception => e
+ STDERR.puts("#{script}: #{e}")
+ end
+ end
+ end
+
+ Process.waitall
end
- Process.waitall
run_time = Time.now.to_i - start_time
begin
puts "PUTVAL #{HOSTNAME}/rubber/gauge-collectd_runner interval=#{INTERVAL} N:#{run_time}"
rescue Errno::EPIPE
@@ -101,7 +119,6 @@
sleep_time = INTERVAL
STDERR.puts("Plugins taking longer (#{run_time}s) than #{INTERVAL}s")
end
sleep sleep_time
-
end