У меня есть две модели Компания и новости Как делать новости каждые 30 минут? Я пытался через драгоценный камень «когда» ничего не происходитКак делать новости каждые 30 минут?
class Company < ActiveRecord::Base
after_save :load_news
def load_news
last_entry = self.news.last
if last_entry.nil?
feed = Feedzirra::Feed.fetch_and_parse(self.url)
else
feed = Feedzirra::Feed.fetch_and_parse(self.url,
:if_modified_since => last_entry.published_at.to_time)
end
Company.add_entries(feed.entries, self.id)
end
def self.update_all_feeds(urls)
Feedzirra::Feed.fetch_and_parse(urls,
:on_success => lambda { |url, feed|
rss = Comapny.select("companies.id").where(:url => url).first
Company.add_entries(feed.entries, rss.id)
}
)
end
end
class News < ActiveRecord::Base
attr_accessible :content, :guid, :name, :published_at, :summary, :url, :company_id
end
С классом с именем News, я надеюсь, что у вас есть что-то в вашем инициализаторе, чтобы избежать сингулярной новости называют «новым». Это просто попрошайничество в конфликте с «новым» методом Рубина. Я бы переименовал это в NewsItem или некоторые из них. Кроме того, что именно выглядит ваша всякий раз, когда конфигурация выглядит? Появляется ли работа среди ваших заданий cron? Для сбора в фоновом режиме каждые 30 минут, это не плохой способ сделать это. – sockmonk
У меня нет опыта с чем угодно. Но я буду использовать delayed_job или sidekick для времени, которое было запланировано. – Mindbreaker
@sockmonk 'каждый 1 час делать бегун« Company.load_news » конец' – Anton