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