Rails 有一组很好的过滤器(before_validation、before_create、after_save 等)以及对观察者的支持,但我面临的情况是,依赖过滤器或观察者在计算上过于昂贵。我需要一个替代方案。
问题:我正在记录对大量页面的 Web 服务器点击。我需要的是一个触发器,它会在给定页面的浏览次数超过 X 次时执行操作(例如,发送电子邮件)。由于页面和点击量巨大,使用过滤器或观察器会浪费大量时间,因为 99% 的时间,它测试的条件都是错误的。电子邮件不必立即发送(即可以接受 5-10 分钟的延迟)。
相反,我考虑的是实现某种流程,每 5 分钟左右扫描一次数据库,并检查哪些页面被点击超过 X 次,在新的数据库表中记录该状态,然后发送相应的电子邮件。它并不完全优雅,但它会起作用。
还有其他人有更好的主意吗?