我正在使用rakismet检查评论中的垃圾邮件。

现在,我在before_create回调中执行此操作,我想知道在生产站点中,这是否是最有效的方法,还是应该由后台作业来完成?

您能否就增加延迟到生产应用程序的响应速度方面分享您的经验?

最佳答案

我还没有使用rakisment,但是对操作进行任何预处理都会使其变慢,并且在您的垃圾邮件过滤器中,随着rakismet词典中包含更多垃圾邮件指示符,它将越来越慢。

我建议分两步进行:

  • before_create中,进行最小程度的垃圾邮件检查,以捕获非常明显的垃圾邮件。您可以搜索单词(“viagra”,“cialis”,“debt”等),还可以检查提交者的提交速度不是很快。这将很快,并且不会使您的应用程序减慢太多。
  • Delayed Job(Ruby中最著名的后台处理库之一)中,运行rakismet检查。这些可以在事实之后删除/标记注释。

  • 此解决方案立即限制了垃圾邮件,最终将利用rakismet的功能来完全清除注释,而不会造成过多负担或降低系统速度。

    这种方法的一个好处是,非常容易,可以轻松扩展您的延迟作业流程,但是只需在同一(或不同)服务器上启动更多工作线程即可。这意味着您的主应用程序不会爬网,因为繁重的工作已经转移到工作进程的多个实例上。

    关于ruby-on-rails - 垃圾邮件检查,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3789689/

    10-13 09:03