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