【问题标题】:How to use Byebug with Sidekiq and Foreman如何将 Byebug 与 Sidekiq 和 Foreman 一起使用
【发布时间】:2016-01-05 17:05:06
【问题描述】:

我有一个 rails 应用程序,我在其中使用 foreman 来启动我的 rails 和 sidekiq 服务器。由于工头与常规的 byebug 交互不佳(您在键入时看不到提示),因此我已经为我的 rails 和 sidekiq 服务器设置了远程调试。这对 rails 服务器非常有效,但是当我连接到 sidekiq 服务器的 byebug 服务器时,我得到以下信息:

$ bundle exec byebug -R localhost:58501
Connecting to byebug server localhost:58501...
Connected.
(byebug:ctrl)

而且我无法捕获任何 byebug 断点。

根据文档,(byebug:ctrl)提示符表示程序已经正常终止(https://github.com/deivid-rodriguez/byebug/blob/master/GUIDE.md),但sidekiq运行作业正常。

我的配置有什么不正确的地方,还是 sidekiq 与 byebug 的远程调试不兼容?

过程文件:

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 功能正常(尽管在 foreman 中我在键入时看不到提示)。

另请注意,我在Byebug.start_server 之前尝试过使用Byebug.wait_connection = true,但我遇到了同样的问题。

【问题讨论】:

  • 你有没有想过这个问题?我实现了您的解决方案,只是为了让 byebug 远程调试在带有 heroku local 的 rails 服务器上工作,但它使我的服务器慢下来,并且 heroku local 变得几乎没有响应。你必须处理这个问题吗?
  • 我建议在本地使用内联作业执行,因为 resque 或 sidekiq 是很大的开发开销。但这并不是真正的答案,只是一个建议
  • 不是你的问题的答案,但它会解决你的问题:github.com/Mon-Ouie/pry-remote

标签: ruby-on-rails sidekiq foreman byebug


【解决方案1】:

我尝试在本地复制它,并且使用 sidekiq 3.3.1 和 byebug 9.0.5,它似乎可以正常工作,只需稍微调整一下需求:

require 'byebug/core'

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}"

工作:

class TestJob
  include Sidekiq::Worker

  def perform
    byebug
  end
end

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-31
    • 1970-01-01
    • 2017-12-31
    • 2020-08-18
    • 2019-05-06
    • 1970-01-01
    • 1970-01-01
    • 2016-12-23
    相关资源
    最近更新 更多