class Redis::PipelinedConnection

Attributes

db[RW]

Public Class Methods

new(pipeline, futures = []) click to toggle source
# File lib/redis/pipeline.rb, line 9
def initialize(pipeline, futures = [])
  @pipeline = pipeline
  @futures = futures
end

Public Instance Methods

multi() { |transaction| ... } click to toggle source
# File lib/redis/pipeline.rb, line 20
def multi
  transaction = MultiConnection.new(@pipeline, @futures)
  send_command([:multi])
  size = @futures.size
  yield transaction
  multi_future = MultiFuture.new(@futures[size..-1])
  @pipeline.call_v([:exec]) do |result|
    multi_future._set(result)
  end
  @futures << multi_future
  multi_future
end
pipelined() { |self| ... } click to toggle source
# File lib/redis/pipeline.rb, line 16
def pipelined
  yield self
end

Private Instance Methods

send_blocking_command(command, timeout, &block) click to toggle source
# File lib/redis/pipeline.rb, line 48
def send_blocking_command(command, timeout, &block)
  future = Future.new(command, block)
  @pipeline.blocking_call_v(timeout, command) do |result|
    future._set(result)
  end
  @futures << future
  future
end
send_command(command, &block) click to toggle source
# File lib/redis/pipeline.rb, line 39
def send_command(command, &block)
  future = Future.new(command, block)
  @pipeline.call_v(command) do |result|
    future._set(result)
  end
  @futures << future
  future
end
synchronize() { |self| ... } click to toggle source
# File lib/redis/pipeline.rb, line 35
def synchronize
  yield self
end