Рельсы 3 / всякий раз, когда хрон не стреляет - PullRequest
1 голос
/ 10 января 2012

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

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'

"Rake Audit" в консоли работает правильно.

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

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

Спасибо!

Ответы [ 2 ]

1 голос
/ 04 сентября 2013

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

После того, как вы добавили свою работу cron, сделайте следующее:

всякий раз, когда --update-crontab 'имя_проекта'

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

ОБНОВЛЕНИЕ :

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

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

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

0 голосов
/ 07 ноября 2012

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

Затем необходимо выполнить следующие процессы:

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

То есть!

...