2010-09-24 9 views
5

Ich benutze Rakismet, um in Kommentaren nach Spam zu suchen.Spam in Schienen überprüfen

Momentan mache ich es in einem vor_create Callback und ich frage mich in einer Produktionsstätte, ob dies der effizienteste Weg ist, oder sollte dies durch einen Hintergrundjob erledigt werden.

Können Sie Ihre Erfahrung in Bezug darauf teilen, wie viel Verzögerung dies zur Reaktionsfähigkeit Ihrer Produktionsanwendungen beiträgt?

Antwort

1

Ich habe rakisment nicht verwendet, aber jede Vorverarbeitung für eine Aktion verlangsamt es, und in der Situation Ihres Spam-Filters wird es immer langsamer, da mehr Spam-Indikatoren im rakismet Wörterbuch enthalten sind .

würde ich einen zweistufiger Prozess empfehlen:

  1. Im before_create, ein minimalen Spam-Check tut sehr offensichtliche zu fangen. Sie können nach Wörtern suchen ("viagra", "cialis", "debt", usw.), sowie überprüfen, dass der Übergeber nicht viele Kommentare sehr schnell einreicht. Dies wird ziemlich schnell sein und Ihre App nicht zu sehr verlangsamen.
  2. In einem Delayed Job (Eine der bekannteren Hintergrundverarbeitung Bibliotheken für Ruby), führen Sie Ihre Rakismet-Prüfungen. Diese können die Kommentare nachträglich löschen/markieren.

Diese Lösung schränkt eklatante Spam sofort, und schließlich die Fähigkeiten von rakismet nutzen die Kommentare ganz zu reinigen, ohne zu viel Belastung verursacht oder an das System verlangsamen.

Ein Vorteil dieses Ansatzes ist, dass es extrem einfach ist, Ihre verzögerten Job-Prozesse zu skalieren, aber nur mehr Arbeiter auf dem gleichen (oder anderen) Server (s) zu starten. Dies bedeutet, dass Ihre Hauptanwendung nicht crawlt, da das Heavy-Lifting auf mehrere Instanzen des Arbeitsprozesses ausgelagert wurde.

+0

Danke. Gibt es ein bekanntes Wörterbuch dieser bekannten Spam-Wörter? – badnaam

+0

Nein, es gibt kein Standardwörterbuch, aber eine schnelle Suche bei Google wird von verschiedenen Seiten angezeigt. –

Verwandte Themen