Sha256: f59acada41167c80ccf65de7695f1e987e0edf2c2fdd51fa4c2c8d9a7ec28262
Contents?: true
Size: 732 Bytes
Versions: 1
Compression:
Stored size: 732 Bytes
Contents
module Searchkick class ReindexQueue attr_reader :name def initialize(name) @name = name raise Searchkick::Error, "Searchkick.redis not set" unless redis end def push(record_id) redis.lpush(redis_key, record_id) end # TODO use reliable queuing def reserve(limit: 1000) record_ids = Set.new while record_ids.size < limit && record_id = redis.rpop(redis_key) record_ids << record_id end record_ids.to_a end def clear redis.del(redis_key) end def length redis.llen(redis_key) end private def redis Searchkick.redis end def redis_key "searchkick:reindex_queue:#{name}" end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
searchkick-2.1.0 | lib/searchkick/reindex_queue.rb |