class Workers::BucketScheduler
Constants
- DEFAULT_BUCKET_SIZE
- DEFAULT_POOL_SIZE
Public Class Methods
new(options = {})
click to toggle source
# File lib/workers/bucket_scheduler.rb, line 6 def initialize(options = {}) options[:bucket_size] ||= DEFAULT_BUCKET_SIZE options[:pool_size] ||= DEFAULT_POOL_SIZE @logger = Workers::LogProxy.new(options[:logger]) @options = options @schedulers = (0...(options[:bucket_size])).map { Workers::Scheduler.new(:pool => Workers::Pool.new(:logger => @logger, :size => options[:pool_size])) } end
Public Instance Methods
dispose()
click to toggle source
# File lib/workers/bucket_scheduler.rb, line 36 def dispose @schedulers.each { |s| s.dispose } nil end
schedule(timer)
click to toggle source
# File lib/workers/bucket_scheduler.rb, line 18 def schedule(timer) @schedulers[timer.hash % @options[:bucket_size]].schedule(timer) nil end
unschedule(timer)
click to toggle source
# File lib/workers/bucket_scheduler.rb, line 24 def unschedule(timer) @schedulers[timer.hash % @options[:bucket_size]].unschedule(timer) nil end
wakeup()
click to toggle source
# File lib/workers/bucket_scheduler.rb, line 30 def wakeup @schedulers.each { |s| s.wakeup } nil end