【问题标题】:Unicorn & Pry in RailsRails 中的独角兽和撬动
【发布时间】:2014-08-21 20:30:40
【问题描述】:

我无法在 Unicorn 上使用 pry,因为我在一段时间后被提示退出。这是一个快速概述:

在控制器的自定义操作中,我有这个:

  def assign
    binding.pry
  end

到达这条路线没问题,我什至得到了熟悉的pry 提示,如下所示:

     8: def assign
     9:
 => 10:   binding.pry
    11: end

[1] pry(#<RolesController>)>

大约一分钟后,我得到了这个,这让我退出了 pry 提示:

[3] pry(#<RolesController>)> E, [2014-08-21T16:29:01.698472 #4780] ERROR -- : worker=0 PID:4852 timeout (61s > 60s), killing
E, [2014-08-21T16:29:01.721420 #4780] ERROR -- : reaped #<Process::Status: pid 4852 SIGKILL (signal 9)> worker=0
I, [2014-08-21T16:29:01.745491 #5109]  INFO -- : worker=0 ready

有没有办法在 pry 时不杀死进程?

【问题讨论】:

    标签: ruby-on-rails ruby unicorn pry


    【解决方案1】:

    我可以通过更改config/unicorn.rb 文件中的timeout 配置来解决此问题,如下所示:

    if ENV["RAILS_ENV"] == "development"
      worker_processes 1
      timeout 10000
    else
      worker_processes Integer(ENV["WEB_CONCURRENCY"] || 3)
      timeout 15
      preload_app true
    end
    

    【讨论】:

    • @Ich — 您是否在您的.profile/.bash_profile 中使用了export RAILS_ENV='development' 或您(野蛮人:D)使用的其他任何东西?然后不要忘记“来源”它; . ~/.profile
    • 谢谢。 if Rails.env.development?也可以使用
    【解决方案2】:

    我认为为了在开发中进行适当的调试,您必须将 unicorn 配置为不要在开发模式下超时。独角兽工作人员正在等待您窥探的控制器操作的响应,因此它在设置的超时窗口内没有得到响应,进程被杀死。

    【讨论】:

      猜你喜欢
      • 2012-09-11
      • 1970-01-01
      • 2014-05-22
      • 2014-01-15
      • 2012-01-05
      • 1970-01-01
      • 2013-01-10
      • 1970-01-01
      • 2015-09-27
      相关资源
      最近更新 更多