我们正在尝试为我们的生产环境实现分片。我们面临的问题是我们推迟了负责某些后台处理的工作。如果我们更新模型并在延迟作业中放入一个条目以在延迟作业中进行处理,那么它会获取该对象的旧值,并且不一致。例如,用户模型有名称、位置,如果我想在他更改位置时触发邮件,那么就像
usr = User.find(1)
usr.position = "foo"
usr.save
在延迟作业中,如果我获取 usr = User.find(1),它将获取旧值。我们在生产环境中使用passenger,mysql我们仍然在Rails 2.3.18上。在我们的应用程序操作中遇到同样的问题之前,这也是由 mysql 查询缓存中的错误引起的,我们停止使用它,并且问题在我们的应用程序操作中得到了解决
最佳答案
这看起来像是一个缓存问题,有很多解决方法,在您继续并使整个缓存失效之前,这会影响性能,我建议您在使用之前发出 usr.reload
对象。
问候,
关于mysql - Rails mysql 获取旧值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16751432/