Ошибка при попытке запустить delayed_job в продакшене

Я использую delayed_job для отправки электронных писем, все отлично работает в процессе разработки при запуске процесса с использованием:

jobs:work

Проблема возникает на моем совместно используемом хосте в процессе производства, когда я пытаюсь запустить процесс с помощью сценария «delayed_job» (как подробно описано здесь)

script/delayed_job start staging

дает мне следующую ошибку

/home/blog/applications/staging/blog/shared/bundle/ruby/1.8/gems/activesupport-3.1.0.rc6/lib/active_support/dependencies.rb:237:in `require': no such file to load -- delayed/command (LoadError)
    from /home/blog/applications/staging/blog/shared/bundle/ruby/1.8/gems/activesupport-3.1.0.rc6/lib/active_support/dependencies.rb:237:in `require'
    from /home/blog/applications/staging/blog/shared/bundle/ruby/1.8/gems/activesupport-3.1.0.rc6/lib/active_support/dependencies.rb:223:in `load_dependency'
    from /home/blog/applications/staging/blog/shared/bundle/ruby/1.8/gems/activesupport-3.1.0.rc6/lib/active_support/dependencies.rb:636:in `new_constants_in'
    from /home/blog/applications/staging/blog/shared/bundle/ruby/1.8/gems/activesupport-3.1.0.rc6/lib/active_support/dependencies.rb:223:in `load_dependency'
    from /home/blog/applications/staging/blog/shared/bundle/ruby/1.8/gems/activesupport-3.1.0.rc6/lib/active_support/dependencies.rb:237:in `require'
    from script/delayed_job:4

Любые идеи о том, как решить эту проблему, пожалуйста?

Я использую Rails 3.1 на Ruby 1.8.7 с Phusion Passenger.




Ответы (1)


Я бы предложил использовать Capistrano для таких вещей. Затем вы можете просто поместить это в свой файл deploy.rb (или Capfile):

require 'delayed/recipes'

after "deploy:start", "delayed_job:start"
after "deploy:stop", "delayed_job:stop"
after "deploy:restart", "delayed_job:restart"

Конечно, мне стало намного легче =)

person Icid    schedule 26.08.2011
comment
Спасибо за ответ Icid, я уже попробовал ваше предложение и получил точно такую ​​​​же ошибку :-( - person pingu; 26.08.2011
comment
Вы пытались связать его прямо из репозитория git? github.com/collectiveidea/delayed_job - person Icid; 26.08.2011