मुझे पासवर्ड-संरक्षित Redis सर्वर से कनेक्ट करने के लिए, यूनिकॉर्न के तहत चलने वाली रेल ऐप प्राप्त करने का प्रयास करने में अप्रत्याशित और महत्वपूर्ण समस्याएं आ रही हैं।Resque Redis कॉन्फ़िगरेशन सेटिंग्स नहीं उठा रहा है
कमांड लाइन पर bundle exec rails c production
का उपयोग करके, मैं Resque.redis के माध्यम से आदेश जारी कर सकता हूं। हालांकि, ऐसा लगता है कि जब यूनिकॉर्न के तहत फोर्क किया जाता है तो मेरी कॉन्फ़िगरेशन खो जाती है।
गैर-पासवर्ड-सुरक्षित Redis सर्वर का उपयोग करना बस काम करता है। हालांकि, मैं अन्य सर्वरों पर श्रमिकों को चलाने का इरादा रखता हूं जहां रेडिस सर्वर रहता है, इसलिए मुझे पासवर्ड सुरक्षित होने की आवश्यकता है।
मुझे पासवर्ड सुरक्षित (उसी तकनीक का उपयोग करके) का उपयोग करने में भी सफलता मिली है, लेकिन यूनिकॉर्न की बजाय यात्री का उपयोग करना।
# config/resque.yml
development: localhost:6379
test: localhost:6379
production: redis://user:[email protected]:6379
:
मैं निम्नलिखित सेटअप है।
# config/initializers/redis.rb
rails_root = ENV['RAILS_ROOT'] || File.dirname(__FILE__) + '/../..'
rails_env = ENV['RAILS_ENV'] || 'development'
$resque_config = YAML.load_file(rails_root + '/config/resque.yml')
uri = URI.parse($resque_config[rails_env])
Resque.redis = Redis.new(host: uri.host, port: uri.port, password: uri.password)
।
# unicorn.rb bootup file
preload_app true
before_fork do |server, worker|
Redis.current.quit
end
after_fork do |server, worker|
Redis.current.quit
end
।
मैंने कोशिश की है (सरलीकृत करना, एक वैश्विक में कॉन्फ़िगरेशन को संग्रहित करना) और बाद में 'फर्क्यूड्रेड = "रेडिस: // उपयोगकर्ता: [email protected] के रूप में बाद_फोर हुक में कनेक्ट स्ट्रिंग को हार्ड-कोड किया गया: 637 9 "' लेकिन हां, कोई सफलता नहीं। कर्मचारियों को काम करने के लिए, रेल वेब ऐप इसका उपयोग करने में विफल रहता है। अगर मैं बंदरगाह बदलता हूं, तो श्रमिक इसे ट्रैक करते हैं, ऐप नहीं करता है। –
यदि आप उत्पादन पर रेल कंसोल शुरू करते हैं, तो 'Resque.redis' का आउटपुट क्या है? –
कंसोल से, सब कुछ ठीक वैसे ही काम करता है, और Resque.redis.info (उदाहरण के लिए) सर्वर से जानकारी देता है। अगर मैं एक अवैध पासवर्ड का उपयोग करता हूं, तो मुझे "पासवर्ड गलत है" शैली त्रुटि मिलती है, इसलिए मुझे पता है कि यह कंसोल पर ठीक से कनेक्ट हो रहा है। यहां तक कि 'Resque.redis.quit' को चलाने के बाद भी 'Resque.redis =" url "' कमांड कंसोल से काम करता है। –