Я нахожусь на Rails, и я использую Koala в задании cron, чтобы импортировать все комментарии Facebook.Требуется ли обратная связь для циклов, содержащих запросы API?
Можно ли использовать цикл for
, где каждый раз, когда я делаю request
и храните response
? Или существует риск, по которому перезапуск for
до того, как я получу response
из Facebook, все запуталось?
Другими словами: Ожидает ли цикл ответ или мне нужна функция обратного вызова?
Вот петля: get_object
вызов
def self.import_comments
# Access Facebook API
facebook = Feed.get_facebook_access
# Run 190 queries per cron job
for i in 1..190
id_of_latest_feed = Feed.get_latest['fb_id']
id_of_latest_feed_checked = Option.get_feed_needle
# Check if there are more recent feeds than the latest checked
if id_of_latest_feed != id_of_latest_feed_checked
# Get the facebook id of the feed which comes after the latest checked
latest_feed_checked = Feed.where(fb_id: id_of_latest_feed_checked).first
this_date = latest_feed_checked['fb_updated_time']
feed_to_check = Feed.get_older_than(this_date)
unless feed_to_check.nil?
# Get the ID of the feed to check
fb_id = feed_to_check['fb_id']
# Update needle
Option.update_feed_needle_to(fb_id)
# -------- REQUEST! --------- #
# Get comments from Facebook
@comments = facebook.get_object("#{ fb_id }/comments?filter=stream")
# Save each comment
@comments.each do |comment|
if Comment.exists?(fb_id: comment['id'])
# don't do anyhting
else
# save the comment
end
end
end
end
end
end
Я запускал код и не испытывал никаких проблем до сих пор, поэтому, я думаю, вы правы –