class RubyJob::InMemoryJobStore::JobPriorityQueue

Public Class Methods

new() click to toggle source
# File lib/ruby_job/in_memory_job_store.rb, line 76
def initialize
  @pqueue = FibonacciHeap::Heap.new
end

Public Instance Methods

delete(job) click to toggle source
# File lib/ruby_job/in_memory_job_store.rb, line 92
def delete(job)
  @pqueue.delete(job)
end
pop() click to toggle source
# File lib/ruby_job/in_memory_job_store.rb, line 84
def pop
  @pqueue.pop
end
push(job) click to toggle source
# File lib/ruby_job/in_memory_job_store.rb, line 80
def push(job)
  @pqueue.insert(job, key_for(job))
end
top() click to toggle source
# File lib/ruby_job/in_memory_job_store.rb, line 88
def top
  @pqueue.min
end

Private Instance Methods

key_for(job) click to toggle source
# File lib/ruby_job/in_memory_job_store.rb, line 98
def key_for(job)
  job.start_at.to_f.round(3) + job.uuid.to_f / 1_000
end