class Redis::PipelinedConnection
def initialize(pipeline, futures = [], exception: true)
def initialize(pipeline, futures = [], exception: true) @pipeline = pipeline @futures = futures @exception = exception end
def multi
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
def pipelined
def pipelined yield self end
def send_blocking_command(command, timeout, &block)
def send_blocking_command(command, timeout, &block) future = Future.new(command, block, @exception) @pipeline.blocking_call_v(timeout, command) do |result| future._set(result) end @futures << future future end
def send_command(command, &block)
def send_command(command, &block) future = Future.new(command, block, @exception) @pipeline.call_v(command) do |result| future._set(result) end @futures << future future end
def synchronize
def synchronize yield self end