class FastlyNsq::PriorityThreadPool

Public Class Methods

new(*) click to toggle source
Calls superclass method
# File lib/fastly_nsq/priority_thread_pool.rb, line 6
def initialize(*)
  super

  @queue = FastlyNsq::PriorityQueue.new(:max)
end

Public Instance Methods

ns_assign_worker(*args, &task) click to toggle source

tries to assign task to a worker, tries to get one from @ready or to create new one @return [true, false] if task is assigned to a worker

@!visibility private

Calls superclass method
# File lib/fastly_nsq/priority_thread_pool.rb, line 29
def ns_assign_worker(*args, &task)
  super(args[1..-1], &task)
end
ns_enqueue(*args, &task) click to toggle source

tries to enqueue task @return [true, false] if enqueued

@!visibility private

# File lib/fastly_nsq/priority_thread_pool.rb, line 16
def ns_enqueue(*args, &task)
  if !ns_limited_queue? || @queue.size < @max_queue
    @queue.push([task, args[1..-1]], args[0])
    true
  else
    false
  end
end