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