2010-09-24 70 views
5

我使用rakismet來檢查評論中的垃圾郵件。在rails中垃圾郵件檢查

現在,我在before_create回調函數中執行該操作,並且在生產站點中想知道如果這是最有效的方法或者應該由後臺作業完成。

您可以分享您的體驗,這是否會延長您的生產應用程序的響應時間?

回答

1

我還沒有使用過rakisment,但是對動作做任何預處理都會降低速度,在垃圾郵件過濾器的情況下,由於更多的垃圾郵件指示器包含在rakismet字典中,速度會越來越慢。

我推薦兩個步驟:

  1. before_create,做一個最小的垃圾郵件檢查,以趕上非常明顯的。您可以搜索單詞(「viagra」,「cialis」,「債務」等),並檢查提交者是不是很快提交很多評論。這會很快,並且不會讓你的應用程序太慢。
  2. Delayed Job(其中一個更爲人熟知的Ruby後臺處理庫)中,運行rakismet檢查。這些可以在事實後刪除/標記註釋。

此溶液立即限制明顯垃圾郵件,並最終利用的rakismet能力完全清理意見,而不會造成太大的壓力或減緩系統。

這種方法的一個好處是它非常容易縮放延遲作業過程,但只需在同一(或不同)服務器上啓動更多工作人員即可。這意味着您的主應用程序不會抓取,因爲繁重的工作已卸載到工作進程的多個實例中。

+0

謝謝。是否有已知的這些已知垃圾郵件字詞的字典? – badnaam 2010-09-24 20:59:11

+0

不,任何地方都沒有標準字典,但是在Google上快速搜索會在不同的網站上找到一些。 – 2010-09-26 20:28:06