Масштабируемый способ настроить подписку на продукт? - PullRequest
0 голосов
/ 02 апреля 2012

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

У меня есть две модели, Product и Price. Product может иметь много разных Prices. Таким образом, я думал, что это должно быть сделано:

  1. Подписаться на товар.
  2. Создание фонового задания, которое сканирует базу данных каждый час по более низким ценам.
  3. Уведомление пользователей по электронной почте.

Я не уверен насчет # 2, и если это лучший способ сделать это. Что бы вы предложили, ребята?

Ответы [ 2 ]

2 голосов
/ 02 апреля 2012

Если ваше приложение Rails добавляет новые объекты Price в Продукты в своей базе данных, почему бы не иметь обратный вызов ActiveRecord (after_create в этом случае) каждый раз, когда добавляется новый объект Price?

Этот обратный вызов ActiveRecord может запустить отложенное задание, чтобы отправить пользователю электронное письмо о новой, более низкой цене.

2 голосов
/ 02 апреля 2012

Если бы это был я, я бы использовал триггеры базы данных, а не фоновый очиститель заданий.

Вот введение к триггерам:

http://www.mysqltutorial.org/mysql-triggers.aspx

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