【发布时间】:2010-08-27 20:36:33
【问题描述】:
我有一个高流量网站,它在表格中记录网络点击量,Hits。有适当的逻辑可以丢弃重复的命中(在此示例中,将命中定义为重复的定义是任意的)。
问题:在运行多个 Web 服务器(针对同一个数据库)的情况下,两个或多个命中可以同时到达不同的 Web 服务器,并且从每个服务器的角度来看,它们都不是重复的(而它们是通过一个除了第一个服务器之外的所有服务器都应该被丢弃)。因此,它们都被写入 Hits 表。
在不更改数据库模式以强制 Hits 表中的字段具有唯一性的情况下,我如何强制 Rails 将事务同步到数据库以保证不写入重复项?根据文档,ActiveRecord 事务仅在每个连接的基础上执行,这还不够好(据我所知)。
【问题讨论】:
标签: mysql ruby-on-rails ruby transactions synchronize