diff options
author | ytti <saku@ytti.fi> | 2016-01-27 18:09:40 +0200 |
---|---|---|
committer | ytti <saku@ytti.fi> | 2016-01-27 18:09:40 +0200 |
commit | 4fbf00dbd1e295664717f0d963e3aadee3935a19 (patch) | |
tree | 74d414aaf24073f95d9dd36a547ad0b40805c7b4 /lib/oxidized/jobs.rb | |
parent | 3bacf05ab4a21c4f97c59b0fddce7191fa910959 (diff) | |
parent | 071ba09110fccd845995a9eecdf35e544662daf1 (diff) |
Merge pull request #289 from ocadotechnology/improve-job-durations
Improve job queuing
Diffstat (limited to 'lib/oxidized/jobs.rb')
-rw-r--r-- | lib/oxidized/jobs.rb | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/lib/oxidized/jobs.rb b/lib/oxidized/jobs.rb index ff7f92b..2c656f6 100644 --- a/lib/oxidized/jobs.rb +++ b/lib/oxidized/jobs.rb @@ -20,13 +20,18 @@ module Oxidized end def duration last + if @durations.size > @nodes.size + @durations.slice! @nodes.size...@durations.size + elsif @durations.size < @nodes.size + @durations.fill AVERAGE_DURATION, @durations.size...@nodes.size + end @durations.push(last).shift @duration = @durations.inject(:+).to_f / @nodes.size #rolling average new_count 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 |