Sha256: 4124ec805c7f7166bf04b46eeb1b330121361ba34f0ecd9df7a248538f1fc873
Contents?: true
Size: 665 Bytes
Versions: 3
Compression:
Stored size: 665 Bytes
Contents
#!/usr/bin/env ruby module Flapjack class RecordQueue def initialize(queue, object_klass) @queue = queue @object_klass = object_klass end def push(object) Flapjack.redis.multi do Flapjack.redis.lpush(@queue, object.id) Flapjack.redis.lpush("#{@queue}_actions", "+") end end def foreach(options = {}) while object_id = Flapjack.redis.rpop(@queue) next unless object = @object_klass.find_by_id(object_id) yield object if block_given? object.destroy unless options[:keep] end end def wait Flapjack.redis.brpop("#{@queue}_actions") end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
flapjack-2.0.0 | lib/flapjack/record_queue.rb |
flapjack-2.0.0rc1 | lib/flapjack/record_queue.rb |
flapjack-2.0.0b1 | lib/flapjack/record_queue.rb |