Rails периодически запускает объектный метод на себе

#ruby-on-rails #ruby #cron #whenever

#ruby-on-rails #ruby #cron #всякий раз, когда

Вопрос:

Мне нужно запускать метод один раз в день в приложении Rails.

Я подумываю об использовании whenever gem, но я понимаю, что у меня небольшая проблема.

Мне нужно запустить метод на экземпляре объекта. Поэтому я не могу просто иметь что-то вроде:

 every 1.day do
    runner 'Object.method'
end
  

Я подумываю о том, чтобы сделать что-то вроде

 every 1.day do
  runner 'Object.where(status: "the_status_i_want").each { |object| object.method }'
end
  

Но я понятия не имею, как проверить это поведение изнутри «всякий раз».

Есть идеи?

Ответ №1:

У Райана Бейтса есть хороший эпизод об интеграции whenever gem в Rails

http://railscasts.com/episodes/164-cron-in-ruby-revised

(На этом сайте также есть бесплатная версия, но она довольно старая, http://railscasts.com/episodes/164-cron-in-ruby )