Sha256: 8783a514256836021a1fc666fca132dfe0ac0ac84e1a800c47f4802fad848303

Contents?: true

Size: 1.26 KB

Versions: 6

Compression:

Stored size: 1.26 KB

Contents

if defined?(PhusionPassenger)
  PhusionPassenger.on_event(:starting_worker_process) do |forked|
    # We're in smart spawning mode.
    if forked
      # Re-establish redis connection
      require 'redis'
      config = YAML.load(ERB.new(IO.read(File.join(Rails.root, 'config', 'redis.yml'))).result)[Rails.env].with_indifferent_access

      # The important two lines
      $redis.client.disconnect if $redis
      $redis = begin
                 Redis.new(host: config[:host], port: config[:port], thread_safe: true)
               rescue
                 nil
               end
      Resque.redis = $redis
      Resque.redis.client.reconnect if Resque.redis
      Resque.redis.namespace = "#{Sufia.config.redis_namespace}:#{Rails.env}"
    end
  end
else
  config = YAML.load(ERB.new(IO.read(File.join(Rails.root, 'config', 'redis.yml'))).result)[Rails.env].with_indifferent_access
  $redis = begin
             Redis.new(host: config[:host], port: config[:port], thread_safe: true)
           rescue
             nil
           end
end

# Code borrowed from Obie's Redis patterns talk at RailsConf'12
Nest.class_eval do
  def initialize(key, redis = $redis)
    super(key.to_param)
    @redis = redis
  end

  def [](key)
    self.class.new("#{self}:#{key.to_param}", @redis)
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
sufia-models-6.7.0 lib/generators/sufia/models/templates/config/redis_config.rb
sufia-models-6.6.1 lib/generators/sufia/models/templates/config/redis_config.rb
sufia-models-6.6.0 lib/generators/sufia/models/templates/config/redis_config.rb
sufia-models-6.5.0 lib/generators/sufia/models/templates/config/redis_config.rb
sufia-models-6.4.0 lib/generators/sufia/models/templates/config/redis_config.rb
sufia-models-6.3.0 lib/generators/sufia/models/templates/config/redis_config.rb