Я пытаюсь заставить delayed_job работать под рельсами 3.0.9 (ruby 1.9.2).Единственный способ, которым мне удалось запустить, - это записать вручную команды rake jobs: work.Но я хочу, чтобы он запускался автоматически при запуске приложения rails.
Я установил monit под Ubuntu и настроил его для запуска файла, расположенного в моем приложении.Эта ошибка выглядит следующим образом:
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 delayed_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 изменяет PATH - почему? ) для изменения переменной среды PATH путем добавления
/usr/bin/env PATH=/home/me/.rvm/bin:$PATH
Команда "sudo monit start delayed_job" выполнена успешно!и рабочий начал.Но проблема заключается в следующем: когда я запускаю sudo /etc/init.d/monit start и когда я смотрю в системный журнал, я все равно получаю 'delayed_job' не удалось запустить
Так что я нене знает, как исследовать больше, как получить больше подробных ошибок для monit.