【发布时间】:2018-02-08 12:54:44
【问题描述】:
我正在尝试为我的应用创建健康检查页面。后端、前端和数据库有 3 个不同的服务器。 我创建了一个 API 来检查服务(sidekiq、redis)是否正在运行。 现在,我想检查 postgres 服务器是否启动。 为此我添加了一个方法
def database?
ActiveRecord::Base.connection.active?
end
这个方法在 postgres 运行时返回 true。如果 Postgres 服务器停止,并且我尝试访问我的 API,我会得到
PG::ConnectionBad (could not connect to server: Connection refused
Is the server running on host "localhost" (127.0.0.1) and accepting
TCP/IP connections on port 5432?
):
如何挽救这个错误?
【问题讨论】:
-
我不认为你可以通过 rails 应用程序做到这一点,因为它首先尝试连接到数据库。您必须使用一个没有 db 要求的应用程序,该应用程序可以 ping 某些服务,例如 db、redis、sidekiq。 Redis,sidekiq,您可以从 rails 应用程序轻松完成,但 db,不。也许有人知道更多:)。
-
@razvans,谢谢。您能否指导我检查数据库连接的标准方法是什么?或者您能否详细说明没有数据库要求的应用程序。
标签: ruby-on-rails postgresql database-connection