Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Ruby守护进程挂起在rails加载上_Ruby On Rails_Ruby_Daemon_Workling - Fatal编程技术网

Ruby on rails Ruby守护进程挂起在rails加载上

Ruby on rails Ruby守护进程挂起在rails加载上,ruby-on-rails,ruby,daemon,workling,Ruby On Rails,Ruby,Daemon,Workling,我在使工作后台程序正常工作时遇到问题。当我跑步时: ruby script/workling_client run 守护进程开始加载rails,但会无限挂起。当我终止进程时,堆栈跟踪始终是相同的: /Library/Ruby/Gems/1.8/gems/activesupport-2.1.2/lib/active_support/core_ext/load_error.rb:32:in `new': Interrupt from /Library/Ruby/Site/1.8/rubygems/

我在使工作后台程序正常工作时遇到问题。当我跑步时:

ruby script/workling_client run
守护进程开始加载rails,但会无限挂起。当我终止进程时,堆栈跟踪始终是相同的:

/Library/Ruby/Gems/1.8/gems/activesupport-2.1.2/lib/active_support/core_ext/load_error.rb:32:in `new': Interrupt
from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `require'
from /Library/Ruby/Gems/1.8/gems/activesupport-2.1.2/lib/active_support/dependencies.rb:510:in `require'
from /Library/Ruby/Gems/1.8/gems/activesupport-2.1.2/lib/active_support/dependencies.rb:355:in `new_constants_in'
from /Library/Ruby/Gems/1.8/gems/activesupport-2.1.2/lib/active_support/dependencies.rb:510:in `require'
from /Library/Ruby/Gems/1.8/gems/httpclient-2.1.2/lib/httpclient.rb:68
from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `require'
 ... 81 levels...
from /Library/Ruby/Gems/1.8/gems/daemons-1.0.10/lib/daemons/cmdline.rb:105:in `call'
from /Library/Ruby/Gems/1.8/gems/daemons-1.0.10/lib/daemons/cmdline.rb:105:in `catch_exceptions'
from /Library/Ruby/Gems/1.8/gems/daemons-1.0.10/lib/daemons.rb:138:in `run'
from script/workling_client:18
如果在没有守护进程库的情况下运行脚本,它将按预期工作。事实上,我在使用守护进程gem加载任何需要rails环境的东西时遇到了麻烦。有什么想法吗


更新:workling_客户端将worklings listen.rb作为守护进程加载。我没有在listen.rb中加载rails,而是对其进行了更改,以便将其加载到workling_client中,并且该过程可以顺利运行。因此,我无法在后台脚本中加载rails是有原因的:-(

尝试在没有监视器的情况下开始工作:

options = {
  :app_name   => "workling",
  :ARGV       => ARGV,
  :dir_mode   => :normal,
  :dir        => File.join(File.dirname(__FILE__), '..', 'log'),
  :log_output => true,
  :multiple   => false,
  :backtrace  => true,
  :monitor    => false
}

你能发布启动守护进程脚本的代码吗?我知道在守护进程脚本中加载rails是可能的,因为我们是为延迟的任务脚本加载rails的

脚本的初始部分执行以下操作:

require File.expand_path(File.join(File.dirname(__FILE__), '..', 'config',
      'environment'))
根据rails项目中的environment.rb文件进行调整。然后,该过程继续进行后台监控:

Worker::Command.new(ARGV, :workers => worker_config).daemonize

我们的脚本在执行daemonize步骤之前加载rails。如果这不起作用,请包括您的脚本如何加载rails。

您是否安装了多个版本的守护进程gem?这破坏了我的解释。我会继续考虑它