Как кодировать поисковую систему подписки? - PullRequest
0 голосов
/ 11 ноября 2011

У меня есть сайт торговой площадки, на котором размещены списки студенческого жилья. Я хотел бы, чтобы мои пользователи сделали определенный поисковый запрос, а затем могли бы «подписаться» на него, то есть, если новый дом будет указан в соответствии с этим конкретным запросом, они получат электронное письмо.

Какой лучший способ сделать что-то подобное? Пока я знаю два варианта:

  • Проверка соответствия подписок при публикации списка - не приведет ли это к значительному увеличению времени обработки для пользователя, публикующего список, если есть тысячи подходящих подписок и он отправил тысячи писем?

  • Использование задания CRON для проверки всех подписок на соответствие спискам - полагаю, это немного сложнее

Как бы вы предложили? Буду признателен за некоторые рекомендации / вклад.

Ответы [ 2 ]

0 голосов
/ 11 ноября 2011

Я работал над проектами, похожими на те, которые вы обсуждаете.Я обнаружил, что лучше всего использовать подход CRON, и вот почему:

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

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

Конечно, все это предполагает, что у вас есть код/ Схема для облегчения решения CRON.

0 голосов
/ 11 ноября 2011

Я бы сделал некоторую автоматическую задачу (например, cronjob), которая проверяет каждый [день | неделю | месяц] для каждого пользователя, какие новые списки соответствуют их предпочтениям. Вы не хотите делать это каждый раз, когда публикуется новый список, так как это некоторые недостатки

  1. Вам нужно найти пользователей, которые заинтересованы в конкретном листинге, гораздо более сложная задача, чем наоборот
  2. Как пользователь, существует риск получения большого количества электронных писем в течение дня. Я думаю, что вы бы предпочли [ежедневный | еженедельный | ежемесячный | почасовой] дайджест.
...