【发布时间】:2013-11-27 14:05:17
【问题描述】:
我已经构建了一个文档管理系统,它由一个内容管理 Rails 应用程序(用于编写和管理文档、用户和其他内容)和一个最终用户 Rails 应用程序(用于阅读、搜索等)组成。
内容管理应用程序位于自己的服务器上,我有几个最终用户服务器来确保高可用性(一项要求)。最终用户服务器充当内容管理服务器的从属服务器(PostgreSQL 主/从复制)。
直到现在需要一个新功能时,这都很好用。最终用户应该能够生成包含用户选择的文档的 pdf。现在这本身没问题 - 系统应该处理大量文档,所以我添加了一个 Sidekiq 工作人员来生成 PDF。但棘手的部分来了: 如何向我的最终用户应用程序添加状态,以便在 pdf 完成生成时通知用户。在一个完美的世界里,我会添加一个新模型,比如 PDFPrintJob,它有一个状态属性,我可以通过控制器显示操作来检查它。但问题是,由于主/从情况,所有最终用户应用程序都位于只读数据库中。
那么我应该如何解决这个问题?有没有更好的方法来构建服务器,使我能够在从属服务器上拥有额外的可写表? 如果数据库服务器能够完成保持内容同步的繁重工作,我会很高兴。
我在 JRuby 1.7.x 和 PostgreSQL 9.2 上运行 Rails4
非常感谢
【问题讨论】:
标签: ruby-on-rails postgresql capistrano