Как оказалось, Streaming API Твиттера не очень хорошо подходит для надежного распространения информации. Согласно официальным данным, каждое приложение, запрашивающее "статусы" по определенным ключевым словам, получает, на самом деле, фильтрованные по усмотрению самого Твиттера результаты. В общем, те же "грабли", что и в "родном" поиске Твиттера.
Представители Твиттера утверждают, что данное ограничение связано с тем, что каждый клиент API, из вполне обоснованных соображений производительности, имеет возможность получить максимум 1% сообщений, генерируемых пользователями сервиса. По их словам, если твиты на запрошенную тему составляют менее 1%, то клиент получит их все. К сожалению, с сервисом ПрайсЛайн вырисовывается несколько иная картина. Здесь сейчас производится мониторинг сообщений по скидкам и с тегом #прайслайн. В среднем мы получаем 10 сообщений в минуту. Опять же, согласно официальной информации, через Твиттер проходит 500 миллионов сообщений в день, то есть примерно 350000 в минуту. Поскольку я обнаружил, что сервисом сохраняются не все релевантные сообщения, лимит видимо достигнут, и наши 10 сообщений составляют 1% от всего потока Твиттера по скидкам. Значит 100% информации о скидках - это 1000 сообщений в минуту, то есть 1/350 от всего Твиттера.
Следует отметить, что скидочная тематика сильно заспамлена (много похожих или идентичных сообщений). Она временно мониторится в качестве проверки работоспособности сервиса, и последующий переход к отслеживанию исключительно сообщений #прайслайн решит проблему.
Правда в долгосрочной перспективе, если поток твитов увеличится, или для реализации других аналитических сервисов, связанных с ценами, скидками, акциями и прочими "горячими" темами, для получения полного набора данных потребуется несколько параллельных подключений разными клиентами - их количество должно быть кратно величине "перегрузки" относительно порога в 1%. Причем клиенты, вероятно, должны работать с разных эккаунтов, поскольку несколько экземпляров, использующих одни и те же ключи потребителя и приложения (даже с разных IP), получают одинаковые поднаборы твитов для одинаковых предикатов.


