Всякий раз, когда работа cron не работает в рельсах 3 - PullRequest
4 голосов
/ 08 августа 2011

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

every 1.minutes do
  runner "User.update_all('daily_sms_count' = 0 )"
end

от терминала i setup

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

В чем проблема?

1 Ответ

6 голосов
/ 08 августа 2011

Вы используете RVM? Если так, то Everyever генерирует запись в crontab, например:

* * * * * /bin/bash -l -c 
'cd /Users/myuser/Documents/Projects/foo && script/rails runner -e 
development '\''User.update_all("daily_sms_count" = 0 )'\'''

Это означает, что он не обязательно будет использовать версию вашего проекта Ruby и связанный с ним набор гемов, поскольку он раскручивается в новой оболочке bash. Чтобы это работало, вам нужно добавить соответствующий .rvmrc файл в корневую папку вашего проекта. Таким образом, часть cd /Users/myuser/Documents/Projects/foo сгенерированной записи crontab обеспечит использование соответствующих настроек RVM. Просто убедитесь, что при добавлении файла .rvmrc, cd.. и обратно в проект, чтобы RVM распознал .rvmrc.

вашего проекта.

Если вы не используете RVM, запустите crontab -l, скопируйте сгенерированную запись и запустите ее из терминала, чтобы увидеть, работает ли она без ошибок или нет.

Если вы используете Mac, cron отправит сообщения журнала в ваш почтовый ящик, и вы сможете просмотреть их с помощью команды mail.

Если эти приемы не сработали, дайте мне больше информации о вашей рабочей среде (ОС, RVM и т. Д.), Чтобы я мог помочь вам больше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...