Ограничения скорости Twitter и Cron-кэширование с помощью рельсов - PullRequest
0 голосов
/ 13 февраля 2012

У меня есть небольшое рельсовое приложение на Heroku, которое использует последний твит моего клиента для отображения на всех страницах. Он уже достиг предела скорости Твиттера. Я пытаюсь найти решение. Будет ли разумным следующий подход ...

Используйте драгоценный камень cron, например Всякий раз, когда каждую минуту тянет вниз самый последний твит и записывает его в файл, а затем заставляет страницы извлекать твит из этого файла, а не напрямую из Twitter.

Ответы [ 3 ]

1 голос
/ 13 февраля 2012

Я не знаком с конкретными ограничениями скорости в твиттере, но если они выражены в запросах в минуту, тогда работа cron может работать.Что бы вы ни делали, вам нужно перестать позволять входящему трафику управлять вашими запросами.Как правило, вы создаете очередь и получаете от нее один рабочий запрос.Этот работник сам позаботится об ограничении скорости, чтобы вы не перешли.

Ограничения скорости API - необходимое зло.Может быть, вы можете сделать драгоценный камень, чтобы помочь другим людям легко задушить себя.

1 голос
/ 13 февраля 2012

Да, это одна из возможностей.Или вы можете использовать кэширование для хранения твитов, например, с использованием Memcached.Это также сделает ваше приложение быстрее.

0 голосов
/ 21 февраля 2012

Я использовал memcache для кеширования запросов:

latest_tweet = Rails.cache.read "latest_tweet"
if !latest_tweet
   latest_tweet = Twitter.user_timeline("sometwitterusername").first.text 
   Rails.cache.write("latest_tweet", latest_tweet, :expires_in => 5.minutes)
end
...