class Redis::PipelinedConnection
Attributes
Public Class Methods
Source
# File lib/redis/pipeline.rb, line 9 def initialize(pipeline, futures = [], exception: true) @pipeline = pipeline @futures = futures @exception = exception end
Public Instance Methods
Source
# File lib/redis/pipeline.rb, line 21 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
Source
# File lib/redis/pipeline.rb, line 17 def pipelined yield self end
Private Instance Methods
Source
# File lib/redis/pipeline.rb, line 49 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
Source
# File lib/redis/pipeline.rb, line 40 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
Source
# File lib/redis/pipeline.rb, line 36 def synchronize yield self end