class RedisOpen3
Constants
- ERR_KEY
- IN_KEY
- OUT_KEY
- VERSION
Public Class Methods
new(redis_pool, opts={})
click to toggle source
# File lib/redis_open3.rb, line 9 def initialize(redis_pool, opts={}) @redis_pool = redis_pool @timeout = opts[:timeout] || 900 end
Public Instance Methods
open3() { |redis_in, redis_out, redis_err, uuids| ... }
click to toggle source
# File lib/redis_open3.rb, line 14 def open3 with_enums(generated_uuids) do |redis_in, redis_out, redis_err, uuids| begin yield redis_in, redis_out, redis_err, uuids rescue Exception => e redis_in.fail raise e ensure redis_out.delete redis_err.delete end redis_in.close end end
process3(uuids) { |redis_in, redis_out, redis_err| ... }
click to toggle source
# File lib/redis_open3.rb, line 29 def process3(uuids) with_enums(uuids) do |redis_in, redis_out, redis_err| begin yield redis_in, redis_out, redis_err rescue Exception => e redis_out.fail ([e.inspect] + e.backtrace).each { |row| redis_err << row } raise e ensure redis_in.delete redis_err.close end redis_out.close end end
Private Instance Methods
generated_uuids()
click to toggle source
# File lib/redis_open3.rb, line 66 def generated_uuids [ IN_KEY, OUT_KEY, ERR_KEY ].inject({}) do |result, key| result[key] = SecureRandom.uuid result end end
with_conns() { |redis1, redis2, redis3| ... }
click to toggle source
# File lib/redis_open3.rb, line 47 def with_conns @redis_pool.call do |redis1| @redis_pool.call do |redis2| @redis_pool.call do |redis3| yield redis1, redis2, redis3 end end end end
with_enums(uuids) { |redis_in, redis_out, redis_err, uuids| ... }
click to toggle source
# File lib/redis_open3.rb, line 57 def with_enums(uuids) with_conns do |redis1, redis2, redis3| redis_in = Enum.new(uuids[IN_KEY], redis: redis1, timeout: @timeout) redis_out = Enum.new(uuids[OUT_KEY], redis: redis2, timeout: @timeout) redis_err = Enum.new(uuids[ERR_KEY], redis: redis3, timeout: @timeout) yield redis_in, redis_out, redis_err, uuids end end