2013-10-29 5 views
7

मेरे पास मेमकैचियर (क्लाइंट के रूप में दल्ली) का उपयोग करके हेरोोक में तैनात रेल ऐप है। मैं मुफ्त ऐड-ऑन का उपयोग कर रहा हूं (जो 25 एमबी कैश प्रदान करता है)।हेमोकू अनुरोध समय समाप्ति जब मेमकैचियर कैश सीमा तक पहुंचता है

हमने हेनोकू से अनुरोध समय-समय प्राप्त करना शुरू कर दिया और डीबगिंग के बाद, हमने पाया कि मेमकैचियर को मैन्युअल रूप से फ़्लश करने से समस्या हल हो गई है।

टाइमआउट तब होता है जब मेमकैचियर अपनी सीमा के करीब स्तर तक पहुंचता है, जैसे 20 एमबी (जब सीमा 25 एमबी होती है)।

क्यों Memcachier समय के साथ कैश स्थान मुक्त नहीं करता है? क्या कोई अनुपलब्ध कॉन्फ़िगरेशन मेमकैचियर को फ्लश करने के लिए कहता है जब कैश कुछ आकार तक पहुंचता है?

मेरे conf:

application.rb

config.cache_store = :dalli_store 

production.rb

client = Dalli::Client.new 
config.action_dispatch.rack_cache = { 
    :metastore => client, 
    :entitystore => client, 
    :allow_reload => false 
} 

उत्तर

0

शायद आपके production.rbsocket_timeout और socket_failure_delay विकल्प शामिल करने के लिए अद्यतन करने की कोशिश।

require 'dalli' 
cache = Dalli::Client.new((ENV["MEMCACHIER_SERVERS"] || "").split(","), 
        {:username => ENV["MEMCACHIER_USERNAME"], 
        :password => ENV["MEMCACHIER_PASSWORD"], 
        :failover => true, 
        :socket_timeout => 1.5, 
        :socket_failure_delay => 0.2 
        }) 

- या -

आप प्यूमा का उपयोग कर रहे हैं, तो आप connection_pool मणि स्थापित करने की आवश्यकता।

Gemfile

gem 'connection_pool' 

और अपने production.rb में इस विन्यास

config.cache_store = :dalli_store, 
        (ENV["MEMCACHIER_SERVERS"] || "").split(","), 
        {:username => ENV["MEMCACHIER_USERNAME"], 
        :password => ENV["MEMCACHIER_PASSWORD"], 
        :failover => true, 
        :socket_timeout => 1.5, 
        :socket_failure_delay => 0.2, 
        :pool_size => 5 
        } 
संबंधित मुद्दे