2014-12-29 3 views
0

Я создал очень простой метод в моем когда это файл schedule.rb драгоценного камняПережить конфигурации Capistrano с Всякий раз, когда драгоценный камень

every 10.minutes do 
    rake "update_models" 
end 

Все, что я пытаюсь выполнить теперь настроить Capistrano для автоматического создания кронтаб по телефону

whenever --update-crontab --set environment=development 

или

whenever -i 

Но я был неудачен в получении через длительный процесс настройки. Мой Capfile имеет следующий

require "whenever/capistrano" 

Мой файл deploy.rb имеет следующее:

namespace :deploy do 
    task :update_crontab do 
    run "cd /Users/affinities/Desktop/my_app && bundle exec whenever --update-crontab --set environment=development" 
    end 
end 

Я просто пытаюсь получить, когда драгоценный камень, чтобы пнуть это schedule.rb файл всякий раз, когда я начинаю вверх сервер. Может ли кто-нибудь дать мне шаг за шагом установить минимальную сумму Капистрано, необходимую для этого? Когда я запускаю сервер «rails», я хочу обновить crontab. Я просто пытаюсь сделать это в среде разработки прямо сейчас.

ответ

1

Я не уверен, почему вы думаете, что capistrano должен выполнить вашу задачу на команде rails server. Capistrano служит для развертывания и не связан с вашим местным rails server, начиная. Включив

require "whenever/capistrano" 

эту линию в Capfile, вы говорите Capistrano переписать кронтаб на каждом развертывания. Он также будет использовать среду, которая установлена ​​в вашем config/deploy/x.rb в этой переменной set :rails_env, 'environment'. Таким образом, линия require - это все, что вам нужно. И ваша run команда (и задача, соответственно) не имеет смысла:

run "cd /Users/affinities/Desktop/my_app && bundle exec whenever --update-crontab --set environment=development" 
+0

Хорошо, я думаю, что ответ на мой вопрос ... Рельсы сервер не развернуть и поэтому для локального сервера под управлением Capistrano будет в основном ничего не делать, правильно ? Я смог решить свою проблему, используя Rufus-scheduler, который работал как шарм! –

+0

@ affinities23 вы, вероятно, должны прочитать некоторые статьи о развертывании. Но, короче говоря, capistrano используется для доставки вашего кода из репозитория (например, github) на удаленный сервер (ы), и, требуя, когда/capistrano, после развертывания он также перезапишет crontab на этом удаленном сервере (серверах). –

+0

Хорошо, это круто спасибо за краткое объяснение. –