के साथ बायबग का उपयोग कैसे करें मेरे पास एक रेल एप्लिकेशन है जिसमें मैं अपने रेल और साइडकीक सर्वर शुरू करने के लिए फोरमैन का उपयोग करता हूं। चूंकि फोरमैन नियमित बायबग के साथ अच्छी तरह से बातचीत नहीं करता है (आप टाइप करते समय प्रॉम्प्ट नहीं देख सकते हैं), मैंने अपने रेल और साइडकीक सर्वर दोनों के लिए रिमोट डीबगिंग सेट की है। यह रेल सर्वर के लिए पूरी तरह से काम करता है, लेकिन जब मैं sidekiq सर्वर के लिए byebug सर्वर से कनेक्ट, मैं निम्नलिखित मिल:साइडकीक और फोरमैन
$ bundle exec byebug -R localhost:58501
Connecting to byebug server localhost:58501...
Connected.
(byebug:ctrl)
और मैं किसी भी byebug breakpoints को पकड़ने में असमर्थ हूँ।
प्रलेखन के अनुसार, (byebug: ctrl) प्रॉम्प्ट का अर्थ है कि प्रोग्राम सामान्य रूप से समाप्त हो गया है (https://github.com/deivid-rodriguez/byebug/blob/master/GUIDE.md), लेकिन साइडकीक नौकरियां ठीक चल रहा है।
क्या मेरे कॉन्फ़िगरेशन में कुछ गड़बड़ है, या साइडकीक बसबग के रिमोट डीबगिंग के साथ संगत नहीं है?
Procfile:
sidekiq: bundle exec sidekiq
rails: rails server
config/initializers/byebug.rb:
if Rails.env.development?
require 'byebug'
def find_available_port
server = TCPServer.new(nil, 0)
server.addr[1]
ensure
server.close if server
end
port = find_available_port
puts "Starting remote debugger..."
Byebug.start_server 'localhost', port
puts "Remote debugger on port #{port}"
end
ध्यान दें कि जब मैं दूरस्थ डीबगिंग, sidekiq के साथ ठीक काम करता है byebug का उपयोग नहीं करते हैं (हालांकि फोरमैन में मैं प्रॉम्प्ट नहीं देख सकता जैसा कि मैं टाइप करता हूं)।
यह भी ध्यान दें कि मैंने Byebug.start_server
से पहले उपयोग करने का प्रयास किया है, लेकिन मेरे पास एक ही समस्या है।
क्या आपने कभी यह पता लगाया है? मैंने आपके समाधान को केवल हेबोकू स्थानीय के साथ रेल सर्वर पर काम कर रहे बेबग रिमोट डीबगिंग प्राप्त करने के लिए लागू किया, लेकिन यह मेरे सर्वर को क्रॉल पर धीमा कर दिया और उसकेोकू लोकल बहुत अधिक उत्तरदायी बन गए। क्या आपको इस मुद्दे से बिल्कुल निपटना पड़ा? – Lorenz
मैं स्थानीय रूप से इनलाइन जॉब निष्पादन का उपयोग करने का सुझाव दूंगा, क्योंकि रेस्क्यू या साइडकीक बड़े विकास ओवरहेड हैं। लेकिन यह वास्तव में एक जवाब नहीं है, सिर्फ एक सुझाव – Kkulikovskis
आपके प्रश्न का उत्तर नहीं है, लेकिन यह आपकी समस्या का समाधान करेगा: https://github.com/Mon-Ouie/pry-remote – medik