有没有办法在Ruby Mine中调试守护进程。我调用此文件的方式就像这样
Daemons.run(文件,选项)
其中file是文件的名称,options是我传递给文件的一堆选项。
答案 0 :(得分:-1)
我也试图调试Rails守护进程(gem守护进程)。特别是ActiveMessaging轮询器脚本。但是由于各种原因(竞争条件等),ruby-debug-ide无法附加。
我想出的解决方案是使用gem rails-daemons。这适用于ActiveMessaging并允许我创建各种守护进程,更重要的是,能够在RubyMine中调试它们
解决方法强>
使用https://github.com/mirasrael/daemons-rails创建一个新守护程序。这适用于OSX 10.8.x上的RubyMine 6.3.3,Rails 4,Ruby 2.1.2
示例守护程序
#!/usr/bin/env ruby
# You might want to change this
ENV["RAILS_ENV"] ||= "development"
root = File.expand_path(File.dirname(__FILE__))
root = File.dirname(root) until File.exists?(File.join(root, 'config'))
Dir.chdir(root)
require File.join(root, "config", "environment")
$running = true
Signal.trap("TERM") do
$running = false
end
while($running) do
# Replace this with your code
Rails.logger.auto_flushing = true
Rails.logger.info "This daemon is still running at #{Time.now}.\n"
# ADDED MY CODE BELOW HERE TO START ActiveMessaging
Rails.logger = Logger.new(STDOUT)
ActiveMessaging.logger = Rails.logger
# Load ActiveMessaging
ActiveMessaging::load_processors
# Start it up!
ActiveMessaging::start
sleep 10
end