class Async::Redis::Context::Pipeline
Send multiple commands without waiting for the response, instead of sending them one by one.
Public Class Methods
new(pool)
click to toggle source
Calls superclass method
Async::Redis::Context::Generic::new
# File lib/async/redis/context/pipeline.rb, line 50 def initialize(pool) super(pool) @count = 0 @sync = nil end
Public Instance Methods
call(command, *arguments)
click to toggle source
This method just accumulates the commands and their params.
# File lib/async/redis/context/pipeline.rb, line 77 def call(command, *arguments) write_request(command, *arguments) return nil end
close()
click to toggle source
Calls superclass method
Async::Redis::Context::Generic#close
# File lib/async/redis/context/pipeline.rb, line 98 def close flush super end
collect() { || ... }
click to toggle source
# File lib/async/redis/context/pipeline.rb, line 92 def collect yield @count.times.map{read_response} end
flush(count = 0)
click to toggle source
Flush responses. @param count [Integer] leave this many responses.
# File lib/async/redis/context/pipeline.rb, line 59 def flush(count = 0) while @count > count read_response end end
read_response()
click to toggle source
Calls superclass method
Async::Redis::Context::Generic#read_response
# File lib/async/redis/context/pipeline.rb, line 83 def read_response if @count > 0 @count -= 1 super else raise RuntimeError, "No more responses available!" end end
sync()
click to toggle source
# File lib/async/redis/context/pipeline.rb, line 65 def sync @sync ||= Sync.new(self) end
write_request(*)
click to toggle source
This method just accumulates the commands and their params.
Calls superclass method
Async::Redis::Context::Generic#write_request
# File lib/async/redis/context/pipeline.rb, line 70 def write_request(*) super @count += 1 end