2012-01-10 3 views
1

Я использую whenever, чтобы запускать рейк-задачу каждые 5 минут для моего приложения.Rails 3/всякий раз, когда cron не срабатывает

schedule.rb:

every 5.minutes do 
rake "audit", 
:environment => 'development' 
end 

"когда" в консоли:

0,5,10,15,20,25,30,35,40,45,50,55 * * * * /bin/bash -l -c 'cd /Users/john/Sites/rambler && RAILS_ENV=development bundle exec rake audit --silent' 

"граблей аудит" в консоли работает должным образом.

Так что все выглядит хорошо .... кроме этого не работает. Ничего не происходит каждые пять минут.

Это потому, что я пытаюсь запустить его в разработке/локальном?

Спасибо!

+0

Какой пользователь вы используете для запуска заданий cron? –

+0

Хороший вопрос ..Я не видел никаких настроек для настройки пользователя? –

ответ

0

Наконец-то я решил, как управлять драгоценным камнем. Он работает хорошо на производстве, но не в режиме разработки (я думаю, что для работы в режиме dev вы должны сделать некоторые трюки). увидеть этот ответ для работы в режиме разработчика: Cron not working in Whenever gem

Затем, эти процессы, чтобы сделать:

  1. установить камень
  2. написать scheduler.rb файл
  3. нажимной на удаленный сервер
  4. Войти на удаленный сервер (например, с помощью ssh)
  5. см., Если всякий раз, когда он хорош, загружается при запуске в терминале: когда
  6. обновление всякий раз, когда кронтаб запуском: всякий раз, когда --update-кронтаб
  7. перезапуск сервера кронтаб (например, в убунту): Судо служба хрон рестарт
  8. проверка если кронтаб хороши реализованы на сервере: кронтаб -l

То есть!

1

Вам необходимо обновить свой cron-файл каждый раз, когда вы его меняете.

После addded ваш хрон сделать это:

когда --update-кронтаб 'project_name'

Также я нашел только, когда работает нормально только в режиме производства.

UPDATE:

Я обнаружил, что мы можем использовать whenever в режиме разработки также. Просто добавьте

set :environment, "development" 
set :output, {:error => "log/error.log", :standard => "log/cron.log"} 

в ваш файл scehdule.rb. (Журнал один является необязательным, но все же вы можете использовать его для целей тестирования)

Смежные вопросы