class TResque::Registry

Attributes

app_key[R]

Public Class Methods

class_hash() click to toggle source
# File lib/tresque/registry.rb, line 10
def class_hash
  @class_hash ||= {}
end
class_list() click to toggle source
# File lib/tresque/registry.rb, line 18
def class_list
  class_hash.keys
end
default_weight() click to toggle source
# File lib/tresque/registry.rb, line 6
def default_weight
  100
end
new(app_key) click to toggle source
# File lib/tresque/registry.rb, line 85
def initialize(app_key)
  @app_key = Util.normalize(app_key)
end
queue(queue_name, weight=nil) click to toggle source
# File lib/tresque/registry.rb, line 28
def queue(queue_name, weight=nil)
  queue_name = queue_name.to_s
  if weight
    # take higher weight
    if !queue_hash[queue_name] || weight > queue_hash[queue_name]
      queue_hash[queue_name] = weight
    end
  else
    queue_hash[queue_name] ||= false
  end
end
queue_hash() click to toggle source
# File lib/tresque/registry.rb, line 14
def queue_hash
  @queue_hash ||= {}
end
queues() click to toggle source

called to know what queues to set

# File lib/tresque/registry.rb, line 49
def queues
  register_classes
  register_bus
  sorted_queues
end
weight(key) click to toggle source
# File lib/tresque/registry.rb, line 40
def weight(key)
  if !self.queue_hash[key]
    self.default_weight
  else
    self.queue_hash[key]
  end
end
worker(klass) click to toggle source
# File lib/tresque/registry.rb, line 22
def worker(klass)
  klass = klass.name if klass.is_a?(Class)
  klass = klass.to_s
  class_hash[klass] = 1
end

Protected Class Methods

register_bus() click to toggle source
# File lib/tresque/registry.rb, line 64
def register_bus
  manager = QueueBus::TaskManager.new(false)
  manager.queue_names.each do |name|
    queue(name)
  end
  queue("bus_incoming", 1)
end
register_classes() click to toggle source
# File lib/tresque/registry.rb, line 57
def register_classes
  class_list.each do |klass_name|
    klass = klass_name.constantize
    queue(klass.queue)
  end
end
sorted_queues() click to toggle source
# File lib/tresque/registry.rb, line 72
def sorted_queues
  array = queue_hash.keys.clone.shuffle
  hash = {}
  array.each do |key|
    hash[key] = self.weight(key)
  end
  # sorted with highest weight first
  array.sort!{ |x,y| hash[y] <=> hash[x] }
  array
end

Public Instance Methods

queue(name, weight=nil) click to toggle source
# File lib/tresque/registry.rb, line 89
def queue(name, weight=nil)
  queue_name = "#{app_key}_#{name}"
  ::TResque::Registry.queue(queue_name, weight)
end