Правильный способ запуска нескольких демонов TweetStream для мониторинга Twitter - PullRequest
0 голосов
/ 10 января 2012

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

  1. Как мне запустить все эти демоны?Я начну один для пользователя, когда он зарегистрируется.Имеет ли смысл дополнительно останавливать их все при развертывании Capistrano, а затем запускать задачу rake, которая перебирает всех моих пользователей и снова запускает демона для каждого из них?
  2. Как контролировать все демоны, чтобы убедиться, что они все правильнофункционирование?
  3. Какими будут затраты с точки зрения оперативной памяти и обработки при наличии большого количества работающих демонов?
  4. Есть ли какие-то другие соображения, которые я упускаю.

Ваше понимание придаст мне уверенности, чтобы продолжить :) Спасибо!

Ответы [ 2 ]

0 голосов
/ 11 января 2012

Кажется, что они на самом деле не хотят этого в настоящее время (11 января 2012 г.).Из их документации:

Потоки пользователей Почти все данные, необходимые для обновления отображения пользователя.Требуется токен пользователя OAuth.Предоставляет публичные и защищенные статусы от подписок, прямых сообщений, упоминаний и других событий, предпринятых пользователем.Большое количество пользовательских потоков не может быть создано с одного хоста или службы.Например, приложение, которое отображает несколько учетных записей одновременно, может открыть соединение для каждой учетной записи.Основной вариант использования - предоставление обновлений клиенту Twitter.

Потоки сайта BETA Позволяет мультиплексировать несколько пользовательских потоков через соединение потока сайта.Если с одного хоста или службы открыто более нескольких соединений User Streams, необходимо использовать Site Streams.Основным вариантом использования является интеграция веб-сайтов и других служб.

Так что, похоже, я должен подать заявку на доступ к этому.

0 голосов
/ 10 января 2012

Я не знаю, ваш код, очевидно, но tweetstream может контролировать несколько пользователей с одним демоном.Этот код взят из их документов :

# Use 'follow' to follow a group of user ids (integers, not screen names)
TweetStream::Client.new.follow(14252, 53235) do |status|
  puts "#{status.text}"
end

Он просто использует параметр Follow API Twitter, который описан в Документах API Twitter .Очевидно, вам нужно будет обрабатывать входящие данные и делать то, что вы делаете, но каждый элемент статуса должен возвращать данные, которые вам нужны для анализа ваших пользователей.Если ваше приложение не очень маленькое, запуск нескольких процессов для выполнения этой работы на самом деле не является хорошим вариантом.

...