class Pakyow::Data::Subscribers::Adapters::Redis::Pipeliner
@api private
Constants
- TIMEOUT
Public Class Methods
new(redis)
click to toggle source
# File lib/pakyow/data/subscribers/adapters/redis/pipeliner.rb, line 12 def initialize(redis) @redis = redis @commands = [] end
pipeline(redis) { |pipeliner| ... }
click to toggle source
# File lib/pakyow/data/subscribers/adapters/redis/pipeliner.rb, line 31 def self.pipeline(redis) pipeliner = Pipeliner.new(redis) redis.pipelined do yield pipeliner end pipeliner.wait end
Public Instance Methods
enqueue(future)
click to toggle source
# File lib/pakyow/data/subscribers/adapters/redis/pipeliner.rb, line 17 def enqueue(future) @commands << { future: future, callback: Proc.new } end
wait()
click to toggle source
# File lib/pakyow/data/subscribers/adapters/redis/pipeliner.rb, line 21 def wait @commands.map { |command| while command[:future].value.is_a?(::Redis::FutureNotReady) sleep TIMEOUT end command[:callback].call(command[:future].value) } end