Вопрос

Я использую задержку с Capistrano и хотел бы начать задержку с задержкой при запуске веб -приложения с помощью «script/script/doyed_job start '. Таким образом, Capistrano может перезапустить его при развертывании. Если сервер перезагрузится, то мой задержка_JOBS должен начать с проекта.

Как я могу это сделать? Должен ли я смотреть на это в файлах среды или в качестве инициализатора?

Это было полезно?

Решение

Вы должны создать один рецепт с командой перезапуска.

namespace :delayed_job do 
    desc "Restart the delayed_job process"
    task :restart, :roles => :app do
        run "cd #{current_path}; RAILS_ENV=#{rails_env} script/delayed_job restart"
    end
end

Затем вы добавляете его для выполнения в конце вашего развертывания.

after "deploy:update_code", "delayed_job:restart"

Другие советы

В сочетании с рецептом перезапуска Capistrano он довольно удобен для использования Cron, чтобы также запустить демон задержка @reboot Время в Crontab:

@reboot /bin/bash -l -c 'cd /path/to/app && RAILS_ENV=production script/delayed_job restart'

И это еще более удобно вместе с когда бы ни Чтобы настроить запланированную задачу:

job_type :envcommand, 'cd :path && RAILS_ENV=:environment :task'

every :reboot do
  envcommand 'script/delayed_job restart'
end

Не уверен, что вся реализация Cron действительно работает только @reboot При запуске системы, но, по крайней мере, швам Ubunt Если вы пройдете restart к script/delayed_job Это, вероятно, будет работать в любом случае.

Немного опоздал на этот вопрос, но версия 2.1.4 of SoerdEd_job имеет рецепты Capistrano:

https://github.com/collectiveadea/delayed_job/wiki/rails-3-and-capistrano

Это ответ Дэмиена Матье, но уже является частью драгоценного камня Doyed_job.

Теперь это работает с обоими рельсами 2 и 3:

В deploy.rb добавьте следующие строки:

require "delayed/recipes"
set :rails_env, 'production' #added for delayed_job
before "deploy:restart", "delayed_job:stop"
after  "deploy:restart", "delayed_job:start"
after "deploy:stop",  "delayed_job:stop"
after "deploy:start", "delayed_job:start"

Можно загрузить и монитор задержка с монитом:
Как отслеживать задержку с монитом

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top