Как настроить Всякий раз, когда драгоценный камень в производстве (RVM) - PullRequest
1 голос
/ 13 марта 2012

У меня есть одна рейк-задача, которую я хочу выполнять один раз в день: в производственном процессе установлен rvm

в schedule.rb У меня есть

set :output, "/home/username/data/public_html/log/cron_log.log"
every 24.hours do
  rake "fetch:smth"
end

crontab-l показывает мне:

MAILTO="my.mail@gmail.com"
PATH="/usr/local/rvm/rubies/ruby-1.9.3-p125/bin/ruby "
@daily cd /home/username/data/www/nameofsite.com && RAILS_ENV=production bundle   exec rake fetch:smth

правда, я немного запутался, потому что раньше у меня не было опыта работы с cron, так что помогите плз.

РЕДАКТИРОВАТЬ # 1

я запустил rvm env - путь 1.9.3@global и он дал мне:

PATH="/usr/local/rvm/gems/ruby-1.9.3-p125/bin:/usr/local/rvm/gems/ruby-1.9.3-p125@global/bin:/usr/local/rvm/rubies/ruby-1.9.3-p125/bin:/usr/local/rvm/bin:$PATH"

и затем у меня

MAILTO="said.kaldybaev@gmail.com"
PATH="/usr/local/rvm/gems/ruby-1.9.3-p125/bin:/usr/local/rvm/gems/ruby-1.9.3-p125@global/bin:/usr/local/rvm/rubies/ruby-1.9.3-p125/bin:/usr/local/rvm/bin:$PATH"
@daily  RAILS_ENV=production rake rate:fetch

, и когда я запускаю execute из ISPmanager, он дал мне: Выход с кодом возврата = 1 ссылка ниже говорит о том, что если ошибка выхода равна 1, то файл /var/run/cron.pid уже существует.и это правда, но у меня нет привилегий root

1 Ответ

2 голосов
/ 13 марта 2012

Вам не нужно schedule.rb, если вы вызываете задачу из cron.Это обрабатывается записью @daily в crontab.Просто задайте имя файла журнала в качестве переменной окружения и задайте для этого задачу rake.Вам, вероятно, также понадобится больше в вашем $PATH, чем просто путь к двоичному файлу ruby, иначе bundle не будет найдено.Пока вы указываете путь к рубину, вы на самом деле не выбираете его, чтобы RVM знал, что вы имеете в виду, поэтому он не сможет найти правильный набор камней.RVM предоставляет упаковщики, которые делают правильные вещи для такого рода задач - замените bundle exec на /usr/local/rvm/wrappers/ruby-1.9.3-p125 -S bundle exec, и это должно сработать.

Надеюсь, что это даст вам некоторые идеи.Здесь больше .

ОБНОВЛЕНИЕ # 1

С помощью Edit # 1 вы исправили одну проблему и создали другую.Вам все еще нужно cd в каталог приложения, иначе rake не найдет Rakefile.

...