ActiveRecord读取用于报告查询的副本



我有一个Rails/ActiveRecord应用程序,它偶尔会针对应用程序的模型执行一些繁重的只读查询,以进行临时管理/报告。我目前使用seamless_database_pool gem将这些查询发送到一个单独的读取副本数据库端点,因此这些查询不会向主数据库添加负载。然而,这种设置增加了对副本的持续运行时依赖性,降低了我的应用程序的可用性-每当副本离线进行维护时,整个站点在任何请求上都会返回503个错误,尽管大多数请求根本不会查询读取的副本。

如何在不影响应用程序可用性的情况下连接到读取副本以在ActiveRecord模型上进行特别报告查询?是否有其他数据库适配器gem显式处理此用例?

或者,(甚至更好)是否可以直接使用ActiveRecord来实现这一点?我知道,可以通过调用#establish_connection来连接到一个单独的数据库,以便将特定的模型引导到所有控制器操作中的一个单独数据库,但对于我的用例,我需要连接到所有模型中的单独数据库,但是仅用于具体的

当只使用主连接时,我通过修改seamless_database_poolgem来放松对读取副本的运行时依赖,从而解决了这个问题。请参阅相关问题和PR.

最新更新