Sha256: 666379d05656597ad9f14451cd7f16ef7bc315fa70360902164bd056f898dd9a

Contents?: true

Size: 812 Bytes

Versions: 2

Compression:

Stored size: 812 Bytes

Contents

module Sidekiq::LimitFetch::Redis
  extend self

  def nonblocking_redis
    redis do |redis|
      # Celluloid 0.16 broke this method
      if Celluloid::VERSION.to_f >= 0.16
        yield redis
      else
      # prevent blocking of fetcher
      # more bullet-proof and faster (O_O)
      # than using Celluloid::IO
      #
      # https://github.com/brainopia/sidekiq-limit_fetch/issues/41
      # explanation of why Future#value is beneficial here
        begin
          Celluloid::Future.new { yield redis }.value
        rescue Celluloid::Task::TerminatedError
        end
      end
    end
  end

  def redis
    Sidekiq.redis {|it| yield it }
  end

  def determine_namespace
    redis do |it|
      if it.respond_to?(:namespace) and it.namespace
        it.namespace + ':'
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
sidekiq-limit_fetch-2.4.2 lib/sidekiq/limit_fetch/redis.rb
sidekiq-limit_fetch-2.4.1 lib/sidekiq/limit_fetch/redis.rb