Foreman'ı raylarıma ve sidekiq sunucularına başladığım bir raylı uygulamasına sahibim. Ustabaşı düzenli byebug ile iyi etkileşime girmediğinden (siz yazarken istemini göremezsiniz), hem raylarım hem de sidekiq sunucuları için uzaktan hata ayıklama işlemi kurdum. Bu raylar sunucu için mükemmel çalışıyor ama sidekiq sunucusu için byebug sunucusuna bağlandığınızda, aşağıdaki alıyorum:Sidekiq ve Foreman ile Byebug nasıl kullanılır
$ bundle exec byebug -R localhost:58501
Connecting to byebug server localhost:58501...
Connected.
(byebug:ctrl)
Ve hiç byebug kesme noktaları yakalamak veremiyoruz.
Belgelere göre, (byebug: ctrl) komut istemi programın normal olarak sonlandırıldığı anlamına gelir (https://github.com/deivid-rodriguez/byebug/blob/master/GUIDE.md), ancak sidekiq işleri iyi çalışıyor.
Yapılandırmamda yanlış bir şeyler var mı, yoksa sebekiq yalnızca byebug'ın uzaktan hata ayıklaması ile uyumlu değil mi?
Procfile:
sidekiq: bundle exec sidekiq
rails: rails server
config/ilklendiriciler/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
Not ben (her ne kadar sidekiq ince fonksiyonları byebug uzaktan hata ayıklama, kullanmadığınızda ustabaşı olarak yazarken istemini göremiyorum).
Ayrıca, Byebug.start_server
'dan önce Byebug.wait_connection = true
kullanmayı denedim, ancak aynı sorunu yaşıyorum.
Bunu hiç anladın mı? Çözümünüzü sadece uzaktan kumandalı bir hata ayıklama işlemi gerçekleştirmek için heroku yerel ile raylar sunucusunda çalışıyordum, ama sunucumu yavaşça bir taramayı yavaşlattı ve yerel bir kahramanca çok hoş karşılanmadı. Bu konuyla uğraşmak zorunda mıydınız? – Lorenz
Resque veya sidekiq büyük bir geliştirme yükü olduğundan, yerel olarak inline iş uygulamasını kullanmanızı öneririm. Ama bu gerçekten bir cevap değil, sadece bir öneri – Kkulikovskis
Sorunuza bir cevap değil, ama sorununuzu çözecektir: https://github.com/Mon-Ouie/pry-remote – medik