Я думаю, что rake task
не является ключевым словом здесь, но я не знаю ключевое слово correct
для решения этой проблемы.Рельсы: как возобновить задачу рейка?
articles = Article.all
articles.each do |article|
get_share(article) #use HTTParty, Nokogiri, etc.
if article.save
puts "#{article.url}, #{article.share}"
end
end
У меня есть этот скрипт, чтобы получить долю числа в URL из Facebook
, Twitter
и других платформ. Однако иногда цикл прерывается, возможно, мое подключение к интернету сломано, или, может быть, разбор в nokogiri
идет не так, или просто artilces
слишком много.
Итак, если я снова заведу task
, он будет начните с начала, что на самом деле пустая трата времени.
Можно ли забрать его, где остановлен цикл (конкретный article
в данном случае), и запустить сценарий оттуда?
Я могу вывести article.id
и получить статью, как articles = Article.where(id > stoped_id)
, но это хорошее решение? или если для этого есть какой-то изящный подход?
Дополняющий вопрос: как я могу перейти к «статье», если она пошла не так, как с неправильным URL-адресом? И когда «timeout» occrus, возобновляет задачу единственным способом? или я могу снова создать «http-запрос»? – cqcn1991
Оберните его в блок начального спасения http://www.tutorialspoint.com/ruby/ruby_exceptions.htm –