2010-09-24 76 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