From 624bea144523777c1830f307ecfd218fc927caeb Mon Sep 17 00:00:00 2001 From: Mike Bryant Date: Wed, 27 Jan 2016 13:23:23 +0000 Subject: Use the ceiling instead of the floor when calculating the desired number of jobs If the number of jobs is large enough, using the floor won't guarantee completion within the desired interval. Example: - interval: 3600 - average duration: 5 - number of nodes: 900 This gives 1.25 as the desired number of threads. Flooring it means that nodes will only be collected once every ~75 minutes. By using the ceiling and slightly over-estimating the desired interval is achieved --- lib/oxidized/jobs.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/oxidized/jobs.rb b/lib/oxidized/jobs.rb index ff7f92b..60a83f4 100644 --- a/lib/oxidized/jobs.rb +++ b/lib/oxidized/jobs.rb @@ -26,7 +26,7 @@ module Oxidized end def new_count - @want = ((@nodes.size * @duration) / @interval).to_i + @want = ((@nodes.size * @duration) / @interval).ceil @want = 1 if @want < 1 @want = @nodes.size if @want > @nodes.size @want = @max if @want > @max -- cgit v1.2.1