class Remon::DedupedQueue
Public Class Methods
new()
click to toggle source
# File lib/remon/deduped_queue.rb, line 8 def initialize @hash = {} @mutex = Mutex.new @queue = Queue.new end
Public Instance Methods
dequeue(non_block = false)
click to toggle source
# File lib/remon/deduped_queue.rb, line 25 def dequeue(non_block = false) task = @queue.pop(non_block) @mutex.synchronize do @hash.delete task end task end
enqueue(task)
click to toggle source
# File lib/remon/deduped_queue.rb, line 14 def enqueue(task) @mutex.synchronize do if @hash[task] logger.debug "duplicate item #{task}" if logger.debug? return end @hash[task] = true end @queue << task end
Also aliased as: '<<'