lib/searchkick/reindex_queue.rb in searchkick-5.2.0 vs lib/searchkick/reindex_queue.rb in searchkick-5.2.1

- old
+ new

@@ -8,11 +8,11 @@ raise Error, "Searchkick.redis not set" unless Searchkick.redis end # supports single and multiple ids def push(record_ids) - Searchkick.with_redis { |r| r.lpush(redis_key, record_ids) } + Searchkick.with_redis { |r| r.call("LPUSH", redis_key, record_ids) } end def push_records(records) record_ids = records.map do |record| @@ -32,28 +32,28 @@ end # TODO use reliable queuing def reserve(limit: 1000) if supports_rpop_with_count? - Searchkick.with_redis { |r| r.call("rpop", redis_key, limit) }.to_a + Searchkick.with_redis { |r| r.call("RPOP", redis_key, limit) }.to_a else record_ids = [] Searchkick.with_redis do |r| - while record_ids.size < limit && (record_id = r.rpop(redis_key)) + while record_ids.size < limit && (record_id = r.call("RPOP", redis_key)) record_ids << record_id end end record_ids end end def clear - Searchkick.with_redis { |r| r.del(redis_key) } + Searchkick.with_redis { |r| r.call("DEL", redis_key) } end def length - Searchkick.with_redis { |r| r.llen(redis_key) } + Searchkick.with_redis { |r| r.call("LLEN", redis_key) } end private def redis_key @@ -63,10 +63,15 @@ def supports_rpop_with_count? redis_version >= Gem::Version.new("6.2") end def redis_version - @redis_version ||= Searchkick.with_redis { |r| Gem::Version.new(r.info["redis_version"]) } + @redis_version ||= + Searchkick.with_redis do |r| + info = r.call("INFO") + matches = /redis_version:(\S+)/.match(info) + Gem::Version.new(matches[1]) + end end def escape(value) value.gsub("|", "||") end