Streaming, Daemons, Cronjobs, как вы их используете? (в рубине) - PullRequest
1 голос
/ 01 октября 2009

У меня наконец появилась секунда, чтобы посмотреть потоковое вещание, демоны и cron. задачи и все аккуратные жемчужины, построенные вокруг них! Но я не уверен в как / когда использовать эти вещи.

У меня есть несколько вопросов:

1) Если бы я хотел, чтобы веб-сайт постоянно обновлялся, в режиме реального времени, с лентами активности моих друзей в Facebook, самыми последними обзорами книг Amazon по моим любимым книгам и моей лентой в Твиттере, я бы просто создать какую-то собственную реализацию потоковой передачи, используя гем Daemon, гем ruby-yali для потоковой передачи контента и гем Everyever, который может сказать, проверять эти сайты каждые 3-10 секунд, чтобы увидеть, изменился ли искомый контент? Это так будет работать? Или это обычно / желательно сделано по-другому?

2) Не слишком ли интенсивен процессор (1)? Есть ли лучший способ сделать это, лучший способ для потоковой передачи контента в реальном времени, учитывая, что веб-сайт, на котором вы хотите получать обновления в реальном времени, не имеет потокового API? Я думаю о том, чтобы просто отправлять запрос каждые несколько секунд в отдельном небольшом приложении ruby ​​(с демонами и cronjobs), получать результат json / xml, использовать nokogiri для удаления ненужных мне вещей, а затем просто проходить через небольшой список комментариев / книг / постов / и т. д., создание ленты того, что изменилось, и использование Juggernaut или чего-то еще, чтобы отправить эти изменения в какое-то приложение rails. Будет ли это работать?

Полагаю, все сводится к вопросу:

Как работает потоковая передача последнего контента какого-либо веб-сайта в режиме реального времени? Как ты делаешь это? ... так что, если кто-то на моем сайте, он может видеть в реальном времени новое сообщение или новую книгу, которая только что вышла?

Ждем ваших ответов, Lance

1 Ответ

1 голос
/ 01 октября 2009

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

Лично я не знаю о чем-то, называемом «потоковым API», но, предположив, что у них есть API, вам все равно нужно извлечь полученные из него результаты (xml, json, ....), проанализировать их и представить их обратно пользователю. Стратегия зависит от типа вашего приложения:

  1. Настольное приложение: тогда вы можете просто извлекать данные напрямую, анализировать их и предоставлять пользователю, многие приложения похожи на Twhirl.
  2. Веб-приложение: тогда вам нужно сократить время на извлечение данных. Обычно вы извлекаете данные из API и сохраняете их. Однако хранить данные немного сложно! Вы не хотите, чтобы ваша база данных была заблокирована для приложения экстремальными запросами, которые оно получит для получения данных обратно. Один из способов сделать это - использовать методологию push; в этом случае выполните вариант 2, чтобы получить данные, а затем нажмите пользователя. Если вы хотите мгновенные обновления, такие как чат, например, вы можете посмотреть на orbited . Если все в порядке, чтобы сохранить данные в «почтовые ящики» пользователей и подписчиков, то, как я могу сказать, самый простой способ - использовать IMAP для отправки обновлений в почтовый ящик пользователя.
...