2016-12-06 9 views
10

जब मैं binding.pry का उपयोग कर रहा हूं तो प्यूमा मेरे अनुरोध से बाहर निकलता है। मेरे नियंत्रकप्यूमा रेल 5 बाइंडिंग.pry केवल टाइमआउट से पहले 60 सेकंड के लिए उपलब्ध

def new 
    require 'pry' 
    binding.pry 
end 

मैं फिर एक अनुरोध करता हूं जो नियंत्रक को हिट करता है और प्रिये सत्र में प्रवेश करता है। 60 सेकंड प्यूमा के बाद? मेरे अनुरोध के समय, एक कार्यकर्ता को पुनरारंभ करता है और बाद में डीबगिंग सत्र द्वारा उड़ाता है।

[1] pry(#<Agent::ClientsController>)> [3522] ! Terminating timed out worker: 3566 
[3522] - Worker 0 (pid: 4171) booted, phase: 0 

मैं ब्रेसिज़ के साथ इस एप्लिकेशन को उत्पन्न कि अगर मायने रखती है। मैं रेलवे 5 में अपना डीबगिंग सत्र कैसे बढ़ा सकता हूं?

उत्तर

6

आप एक कॉन्फ़िगरेशन फ़ाइल बना सकते हैं और वहां टाइमआउट मान सेट कर सकते हैं (सभी अनुरोधों के लिए, केवल डीबगिंग में शामिल नहीं)। मैं एक dev-specific बनाने की अनुशंसा करता हूं, और संदर्भ देता हूं कि स्थानीय रूप से सर्वर चलाते समय (और उत्पादन के लिए कुछ बड़ा टाइमआउट मान सेट नहीं करना)।

#!/usr/bin/env puma 

worker_timeout 3600 

फिर जब आप अपने सर्वर, संदर्भ है कि एक -C इस तरह के साथ फाइल शुरू:

अपने पटरियों आवेदन में, /config/dev_puma_config.rb की तरह एक फ़ाइल बनाएं और उसे में डाल

bundle exec puma -t 1:1 -w 1 -p 3000 -e development -C config/dev_puma_config.rb

उस कार्यकर्ता_टाउटआउट सेटिंग पर पृष्ठभूमि की थोड़ी सी जानकारी के रूप में, यहां प्यूमा कॉन्फ़िगरेशन इसके बारे में क्या कहता है:

सत्यापित करता है कि सभी श्रमिकों ने दिए गए टाइमआउट के भीतर मास्टर प्रक्रिया में चेक किया है। यदि कार्यकर्ता प्रक्रिया को पुनरारंभ नहीं किया जाएगा। यह अनुरोध समय समाप्ति नहीं है, यह लटका या मृत प्रक्रिया के विरुद्ध सुरक्षा करना है। इस मान को सेट करना धीमे अनुरोधों के खिलाफ सुरक्षा नहीं करेगा। डिफ़ॉल्ट मान 60 सेकंड है।

12

इस बारे में कैसे?

# config/puma.rb  
... 

environment ENV['RACK_ENV'] || 'development' 

... 

if ENV['RACK_ENV'] == 'development' 
    worker_timeout 3600 
end 

संपादित करें (रेल 5.1.5):

क्योंकि ENV [ 'RACK_ENV'] खाली है, मैं निम्नलिखित किया गया था:

# config/puma.rb 

... 

if ENV.fetch('RAILS_ENV') == 'development' 
    puts "LOGGER: development => worker_timeout 3600" 
    worker_timeout 3600 
end 
संबंधित मुद्दे