class Adrian::GirlFridayDispatcher

Public Instance Methods

delegate_work(item, worker_class) click to toggle source
# File lib/adrian/girl_friday_dispatcher.rb, line 21
def delegate_work(item, worker_class)
  gf_queue.push([item, worker_class])
end
gf_queue() click to toggle source
# File lib/adrian/girl_friday_dispatcher.rb, line 13
def gf_queue
  @gf_queue ||= GirlFriday::WorkQueue.new(gf_queue_name, :size => gf_queue_size) do |item, worker_class|
    worker = worker_class.new(item)
    worker.report_to(self)
    worker.perform
  end
end
gf_queue_name() click to toggle source
# File lib/adrian/girl_friday_dispatcher.rb, line 5
def gf_queue_name
  @options[:name] || 'adrian_queue'
end
gf_queue_size() click to toggle source
# File lib/adrian/girl_friday_dispatcher.rb, line 9
def gf_queue_size
  @options[:size]
end
stop() click to toggle source
Calls superclass method Adrian::Dispatcher#stop
# File lib/adrian/girl_friday_dispatcher.rb, line 35
def stop
  super
  wait_for_empty
end
wait_for_empty() click to toggle source
# File lib/adrian/girl_friday_dispatcher.rb, line 25
def wait_for_empty
  gf_queue.wait_for_empty

  sleep(0.5)

  while gf_queue.status[gf_queue_name][:busy] != 0
    sleep(0.5)
  end
end