【发布时间】:2011-08-26 20:01:16
【问题描述】:
我正在努力让延迟工作在 rails 3.0.9(ruby 1.9.2)下工作。我成功运行的唯一方法是手动录制命令 rake jobs:work。 但我希望它在 rails 应用程序启动时自动启动。
我已在 ubuntu 下安装了 monit,并将其配置为启动位于我的应用程序中的文件。这失败看起来像:
check process delayed_job with pidfile /home/me/myapp/tmp/pids/delayed_job.pid
start program = "/home/me/myapp/script/delayed_job start"
stop program = "/home/me/myapp/script/delayed_job stop"
并且我在delayed_job脚本文件中添加了环境设置:
#!/usr/bin/env ruby
ENV['RAILS_ENV'] = "development"
require File.expand_path(File.join(File.dirname(__FILE__), '..', 'config', 'environment'))
require 'delayed/command'
Delayed::Command.new(ARGV).daemonize
当我运行命令“sudo monit start delay_job”时,我收到以下错误:
/usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require': no such file to load -- bundler/setup (LoadError)
所以我猜这是因为 sudo 使用了错误版本的 ruby 环境 然后我尝试了以下解决方案: rvm monit delayed_job
通过在启动程序/停止程序行中添加 rvm -S。 但它仍然失败并出现错误:找不到 rvm 命令
我的 rvm 目录位于我的主目录 /home/me/.rvm
我试图在 (sudo changes PATH - why?) 中找到解决方法,通过添加来更改 PATH 环境变量
/usr/bin/env PATH=/home/me/.rvm/bin:$PATH
“sudo monit start delay_job”命令成功!工人开始了。 但问题是:当我启动 sudo /etc/init.d/monit start 并查看系统日志时,我仍然得到 'delayed_job' failed to start
所以我不知道如何进行更多调查,如何获得更详细的监控错误。
【问题讨论】:
标签: ruby-on-rails-3 delayed-job monit