我正在使用rakismet检查评论中的垃圾邮件。
现在,我在before_create回调中执行此操作,我想知道在生产站点中,这是否是最有效的方法,还是应该由后台作业来完成?
您能否就增加延迟到生产应用程序的响应速度方面分享您的经验?
最佳答案
我还没有使用rakisment
,但是对操作进行任何预处理都会使其变慢,并且在您的垃圾邮件过滤器中,随着rakismet
词典中包含更多垃圾邮件指示符,它将越来越慢。
我建议分两步进行:
before_create
中,进行最小程度的垃圾邮件检查,以捕获非常明显的垃圾邮件。您可以搜索单词(“viagra”,“cialis”,“debt”等),还可以检查提交者的提交速度不是很快。这将很快,并且不会使您的应用程序减慢太多。 此解决方案立即限制了垃圾邮件,最终将利用
rakismet
的功能来完全清除注释,而不会造成过多负担或降低系统速度。这种方法的一个好处是,非常容易,可以轻松扩展您的延迟作业流程,但是只需在同一(或不同)服务器上启动更多工作线程即可。这意味着您的主应用程序不会爬网,因为繁重的工作已经转移到工作进程的多个实例上。
关于ruby-on-rails - 垃圾邮件检查,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3789689/