summaryrefslogtreecommitdiff
path: root/lib/oxidized/jobs.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/oxidized/jobs.rb')
-rw-r--r--lib/oxidized/jobs.rb24
1 files changed, 24 insertions, 0 deletions
diff --git a/lib/oxidized/jobs.rb b/lib/oxidized/jobs.rb
new file mode 100644
index 0000000..6476744
--- /dev/null
+++ b/lib/oxidized/jobs.rb
@@ -0,0 +1,24 @@
+module Oxidized
+ class Jobs < Array
+ attr_accessor :interval, :duration, :max, :want
+ def initialize max, interval, nodes
+ @max = max
+ #@interval = interval * 60
+ @interval = interval
+ @nodes = nodes
+ @duration = 4
+ new_count
+ super()
+ end
+ def duration last
+ @duration = (@duration + last) / 2
+ new_count
+ end
+ def new_count
+ @want = ((@nodes.size * @duration) / @interval).to_i
+ @want = 1 if @want < 1
+ @want = @nodes.size if @want > @nodes.size
+ @want = @max if @want > @max
+ end
+ end
+end