Sha256: 6812a2ac5268cc25e1474462b1f1ab3d7a11a5f2c9909175883222818432f8f5

Contents?: true

Size: 1.25 KB

Versions: 15

Compression:

Stored size: 1.25 KB

Contents

module QueueBus
  class TaskManager

    attr_reader :logging
    
    def initialize(logging)
      @logging = logging
    end
    
    def subscribe!
      count = 0
      ::QueueBus.dispatchers.each do |dispatcher|
        subscriptions = dispatcher.subscriptions
        if subscriptions.size > 0
          count += subscriptions.size
          log "Subscribing #{dispatcher.app_key} to #{subscriptions.size} subscriptions"
          app = ::QueueBus::Application.new(dispatcher.app_key)
          app.subscribe(subscriptions, logging)
          log "  ...done"
        end
      end
      count
    end
    
    def unsubscribe!
      count = 0
      ::QueueBus.dispatchers.each do |dispatcher|
        log "Unsubcribing from #{dispatcher.app_key}"
        app = ::QueueBus::Application.new(dispatcher.app_key)
        app.unsubscribe
        count += 1
        log "  ...done"
      end
    end
    
    def queue_names
      # let's not talk to redis in here. Seems to screw things up
      queues = []
      ::QueueBus.dispatchers.each do |dispatcher|
        dispatcher.subscriptions.all.each do |sub|
          queues << sub.queue_name
        end
      end
      
      queues.uniq
    end
    
    def log(message)
      puts(message) if logging
    end
  end
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
queue-bus-0.9.0 lib/queue_bus/task_manager.rb
queue-bus-0.8.1 lib/queue_bus/task_manager.rb
queue-bus-0.8.0 lib/queue_bus/task_manager.rb
queue-bus-0.7.0 lib/queue_bus/task_manager.rb
queue-bus-0.6.0 lib/queue_bus/task_manager.rb
queue-bus-0.5.9 lib/queue_bus/task_manager.rb
queue-bus-0.5.8 lib/queue_bus/task_manager.rb
queue-bus-0.5.7 lib/queue_bus/task_manager.rb
queue-bus-0.5.6 lib/queue_bus/task_manager.rb
queue-bus-0.5.5 lib/queue_bus/task_manager.rb
queue-bus-0.5.4 lib/queue_bus/task_manager.rb
queue-bus-0.5.3 lib/queue_bus/task_manager.rb
queue-bus-0.5.2 lib/queue_bus/task_manager.rb
queue-bus-0.5.1 lib/queue_bus/task_manager.rb
queue-bus-0.5.0 lib/queue_bus/task_manager.rb