Sha256: 93d59916b31f1db7986c9c98f1c041226977aa5af9e4b39072de62e7b15b2437
Contents?: true
Size: 1.33 KB
Versions: 1
Compression:
Stored size: 1.33 KB
Contents
module Plezi module_function # Reviews the Redis connection, sets it up if it's missing and returns the Redis connection. # # A Redis connection will be automatically created if the `ENV['PL_REDIS_URL']` is set. # for example: # ENV['PL_REDIS_URL'] = ENV['REDISCLOUD_URL']` # or # ENV['PL_REDIS_URL'] = "redis://username:password@my.host:6379" def redis_connection return @redis if (@redis_sub_thread && @redis_sub_thread.alive?) && @redis return false unless defined?(Redis) && ENV['PL_REDIS_URL'] @redis_uri ||= URI.parse(ENV['PL_REDIS_URL']) @redis ||= Redis.new(host: @redis_uri.host, port: @redis_uri.port, password: @redis_uri.password) raise "Redis connction failed for: #{ENV['PL_REDIS_URL']}" unless @redis @redis_sub_thread = Thread.new do begin Redis.new(host: @redis_uri.host, port: @redis_uri.port, password: @redis_uri.password).subscribe(Plezi::Settings.redis_channel_name) do |on| on.message do |channel, msg| begin data = YAML.load(msg) next if data[:server] == Plezi::Settings::UUID if data[:target] GRHttp::Base::WSHandler.unicast data[:target], data else GRHttp::Base::WSHandler.broadcast data end rescue => e Plezi.error e end end end rescue => e Plezi.error e retry end end @redis end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
plezi-0.10.1 | lib/plezi/common/redis.rb |