Должно ли это пойти в фоновом режиме?Есть ли лучшие варианты? - PullRequest
0 голосов
/ 15 февраля 2011

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

По сути, это сборщик подкастов.

Мой вопрос касается этого примера пользовательской истории:

  1. Пользователь является слушателем подкаста "Buzz Out Loud", который является ежедневным подкастом.

  2. Пользователь переходит на страницу моего приложения для "Buzz Out Loud", где перечислены десять самых последних эпизодов.

  3. Пользователь замечает, что сегодняшний подкаст, который был опубликован около часа назад, не указан на моем сайте.

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

Я мог бы:

  1. Отправьте параметр "podcast_id" в мой метод, который обновляет список эпизодов подкастов, когда пользователь загружает страницу, прежде чем что-либо рендерится, однако, это кажется расточительным делать это много раз, особенно когда этот метод может потенциально запись в базу данных.

  2. Я могу весь день запускать фоновое задание, которое постоянно собирает эпизоды. Это кажется расточительным для процессора.

Это должно быть общей проблемой с четко определенной стратегией. Может ли кто-нибудь, пожалуйста, обучить меня?

Спасибо

Harris

1 Ответ

2 голосов
/ 15 февраля 2011

Это то, что вы хотели бы запустить в качестве фонового задания, так как запуск его при каждом запросе слишком тяжелый и бесполезный, вы можете использовать гем фонового бегуна, такой как http://railscasts.com/episodes/128-starling-and-workling или посмотреть другой вариант http://railscasts.com/episodes/243-beanstalkd-and-stalker.

Другие опции также обсуждаются в разделе комментариев этих скринкастов. Вы также можете использовать задание cron, которое будет запускать скрипт для проверки новых подкастов каждые 2 часа или в любое время, которое вам потребуется.

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