class Sidekiq::RedisClientAdapter::CompatClient

Public Instance Methods

_client() click to toggle source
# File lib/sidekiq/redis_client_adapter.rb, line 75
def _client
  @client
end
connection() click to toggle source
# File lib/sidekiq/redis_client_adapter.rb, line 67
def connection
  {id: @client.id}
end
disconnect!() click to toggle source
# File lib/sidekiq/redis_client_adapter.rb, line 63
def disconnect!
  @client.close
end
message() { |nil, pop| ... } click to toggle source
# File lib/sidekiq/redis_client_adapter.rb, line 79
def message
  yield nil, @queue.pop
end
redis() click to toggle source
# File lib/sidekiq/redis_client_adapter.rb, line 71
def redis
  self
end
subscribe(chan) { |self| ... } click to toggle source

NB: this method does not return

# File lib/sidekiq/redis_client_adapter.rb, line 84
def subscribe(chan)
  @queue = ::Queue.new

  pubsub = @client.pubsub
  pubsub.call("subscribe", chan)

  loop do
    evt = pubsub.next_event
    next if evt.nil?
    next unless evt[0] == "message" && evt[1] == chan

    (_, _, msg) = evt
    @queue << msg
    yield self
  end
end