Sha256: 636b761afaaf959a9181bbaaa87d263285103aa0d853c59279253bfba095ad1e
Contents?: true
Size: 816 Bytes
Versions: 7
Compression:
Stored size: 816 Bytes
Contents
# frozen_string_literal: true module Wayfarer module Redis Barrier = Struct.new(:batch) do include Connection def redis_key "wayfarer-barrier-#{batch}" end def reset! redis { |conn| conn.del(redis_key) } end def seen?(url) !redis { |conn| conn.sadd(redis_key, url) } end def peek(urls) major, minor, = Version.determine # SMISMEMBER is only supported on Redis >= 6.2.0 if major > 6 || (major == 6 && minor >= 2) redis { |conn| conn.smismember(redis_key, urls) }.map { |val| val == 1 } else urls.map { |url| redis { |conn| conn.sismember(redis_key, url) } } end end def unsee(url) redis { |conn| conn.srem(redis_key, url) } end end end end
Version data entries
7 entries across 7 versions & 1 rubygems