Проверка на спам в рельсах - PullRequest
       1

Проверка на спам в рельсах

5 голосов
/ 24 сентября 2010

Я использую rakismet для проверки на спам в комментариях.

Прямо сейчас я делаю это в обратном вызове before_create, и мне интересно на производственном сайте, является ли это наиболее эффективным способом или это должно быть выполнено фоновой работой.

Можете ли вы поделиться своим опытом с точки зрения того, сколько задержки это добавляет к отзывчивости ваших производственных приложений?

1 Ответ

1 голос
/ 24 сентября 2010

Я не использовал rakisment, но выполнение какой-либо предварительной обработки для действия замедлит его, а в случае с вашим фильтром спама это будет замедляться все больше и больше, поскольку все больше индикаторов спама включается в rakismet словарь.

Я бы порекомендовал двухэтапный процесс:

  1. В before_create сделайте минимальную проверку на спам, чтобы поймать очень очевидные. Вы можете искать слова («виагра», «сиалис», «долг» и т. Д.), А также проверять, не слишком ли быстро отправляет много комментариев. Это будет довольно быстро и не сильно замедлит работу вашего приложения.
  2. В Задержанном задании (Одна из наиболее известных библиотек фоновой обработки для Ruby) запустите проверки rakismet. Они могут удалить / пометить комментарии после факта.

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

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

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