Я рекомендую комбинацию из двух выше. Вы хотите выполнить грабли, даже если у вас уже есть прямой метод. Это связано с тем, что администратор сервера может запускать cron, а также иногда запускать его из командной строки, и для этого хороши задачи rake.
Плагин всякий раз, когда звучит круто, хотя я не могу ручаться за это. Конечно, хорошо знать, как делать вещи с нуля, а затем использовать плагины, чтобы сделать вашу жизнь проще. Вот способ с нуля.
Создать новый файл, lib/tasks/admin.rake
Внутри создайте само задание:
namespace :admin
desc "Updates all RSS feeds"
task :rss => :environment do
RssFeed.update_all
end
end
Это предполагает, что у вас есть класс RssFeed, а метод update_all делает то, что вы ожидаете. Вы можете вызвать это из командной строки:
rake admin:rss
И вы можете добавить это в cron (позвонив crontab -l
как веб-пользователь) и добавив эту строку:
10 0 * * * cd /path/to/rails/app && rake RAILS_ENV=production admin:rss