Sha256: 892e304ed0006ef0a965f19f4cd02650837a14bdeaf3f0077edfd3529cee5f4e
Contents?: true
Size: 702 Bytes
Versions: 5
Compression:
Stored size: 702 Bytes
Contents
require 'redis-namespace' require 'uri' require 'singleton' module Routemaster class RedisBroker include Singleton def initialize @_connections = {} _cleanup end def get(url) _check_for_fork @_connections[url] ||= begin parsed_url = URI.parse(url) namespace = parsed_url.path.split('/')[2] || 'rm' Redis::Namespace.new(namespace, redis: Redis.new(url: url)) end end def cleanup _cleanup end private def _check_for_fork _cleanup unless Process.pid == @_pid end def _cleanup @_pid = Process.pid @_connections.each_value(&:quit) @_connections = {} end end end
Version data entries
5 entries across 5 versions & 1 rubygems