【问题标题】:Sessions Table and Octopus gem会议桌和八达通宝石
【发布时间】:2013-02-14 00:32:41
【问题描述】:

我遇到章鱼复制问题。我使用基于表的会话,当用户登录时,会话是在我的主表中创建的,但下一个请求尝试从从属数据库读取会话数据,但由于会话数据未在第二个之前复制到从属数据库而失败提出请求。如何告诉章鱼从/向同一张表读取和写入会话记录?我没有会话模型,我应该创建一个吗?

【问题讨论】:

  • 如果您没有会话模型,您如何读取/写入会话表?
  • Rails 会自动完成。
  • 能否附上相关代码和错误信息什么的?我已经使用了相当多的章鱼,但我不太了解您的设置或您要做什么。你只是在使用普通的 rails session vars (session[:param]) 吗?为什么要在从属数据库中查找会话信息?
  • 我的 Rails 应用程序上有 activerecord 会话,当创建会话时,它会保存到我的主数据库(所有写入都转到主数据库),但有章鱼设置来对从数据库进行所有读取。问题是有时服务器比数据库复制快,当我尝试读取时,从数据库上的会话不可用。
  • 无论如何,我将尝试使用实际上基于 octopus 的 makara gem,但在故障转移和主从数据库之间的动态切换方面做得更好。

标签: ruby-on-rails octopus


【解决方案1】:

您可以像这样指定要使用的数据库:

Model.using(:master).find(id)

Model.using(:slave_name).find(id)

【讨论】:

  • 对,但是我没有 Session 模型,Rails 内部处理会话并且不创建 Session 模型。
猜你喜欢
  • 2017-08-27
  • 2011-11-26
  • 1970-01-01
  • 1970-01-01
  • 2011-03-21
  • 1970-01-01
  • 2012-12-24
  • 2019-08-09
  • 1970-01-01
相关资源
最近更新 更多