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 | |
| parent | 3bacf05ab4a21c4f97c59b0fddce7191fa910959 (diff) | |
| parent | 071ba09110fccd845995a9eecdf35e544662daf1 (diff) | |
Merge pull request #289 from ocadotechnology/improve-job-durations
Improve job queuing
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/oxidized/jobs.rb | 7 | ||||
| -rw-r--r-- | lib/oxidized/nodes.rb | 1 | 
2 files changed, 7 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 diff --git a/lib/oxidized/nodes.rb b/lib/oxidized/nodes.rb index 0c02d7a..61d2d44 100644 --- a/lib/oxidized/nodes.rb +++ b/lib/oxidized/nodes.rb @@ -147,6 +147,7 @@ module Oxidized          rescue  Oxidized::NodeNotFound          end        end +      sort_by! { |x| x.last.nil? ? Time.new(0) : x.last.end }      end      public | 
