Запросы в Твиттере - правильный путь - PullRequest
3 голосов
/ 21 декабря 2011

В настоящее время я запрашиваю канал твиттера при каждой загрузке страницы (я знаю, что это неправильно), например:

json_decode(file_get_contents("http://api.twitter.com/1/statuses/user_timeline/{$username}.{$format}")); 

Даже при минимальном трафике Твиттер перестает отправлять мне запрос в ближайшее время.Поэтому после запуска веб-сайта для моего клиента - я вижу постоянно недоступные твиттеры.

Я представляю себе эту работу, проверяя фид - сохраняя его в таблице с отметкой времени и выбирая интервал - (скажем 10 минут).При каждой загрузке страницы проверяйте отметку времени, если интервал не прошел, извлекайте ленту из таблицы, а не из твиттера.

Я знаю, что это будет работать, но, учитывая, что моя последняя ошибка была настолько глупой, я хотелУдостоверьтесь, что не было другой лучшей практики.

Правильно ли я на этот раз?

Ответы [ 2 ]

4 голосов
/ 21 декабря 2011

Звучит совершенно верно.Три примечания:

  1. Поместите дату / время в один столбец, а канал Twitter, который вы хотите отобразить в другом столбце, тогда вы можете просто сделать один выбор в этой строке и покончить сit.

  2. Храните визуализированный HTML в базе данных, а не в JSON, возвращенном из Twitter.Тогда вы будете выполнять преобразование только каждые десять минут, а не для каждого запроса страницы.

  3. Выполните сравнение времени в базе данных или на сервере, не смешивая два- У меня возникли проблемы с синхронизацией серверов, что вызвало у меня сильные головные боли.То есть не используйте вызов «INSERT ... CURTIME () ...», а затем сравнивайте его с датой, сгенерированной PHP.Моим предложением было бы сгенерировать дату PHP и сохранить ее, поскольку сравнение времени в SQL может быть сложным.

1 голос
/ 21 декабря 2011

Всегда разумно кэшировать данные ввода / вывода, которые вряд ли изменились. Оптимальный способ в зависимости от объема трафика, который вы получаете, и того, насколько актуальными вам нужны данные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...