我想为 ruby 应用程序设置 MySQL 数据库健康检查,基本上响应应该是
{
"read_success": true,
"write_success": true,
"exception": null
}
我的健康检查应该执行以下操作:
从数据库中读取一个表 向数据库写入一些东西 如果上述任何操作失败,它应该抛出响应中提到的异常。
module API
ApplicationName.controllers :health_check do
get :index do
status = {
read_success: read_successful,
write_success: write_successful,
exception: check_exception
}
[200, {}, [status.to_json]]
end
end
end
def read_successful
begin
ActiveRecord::Base.connection.execute("SELECT 1")
true
rescue
false
end
end
def write_successful
begin
# logic to check write to database, which table should i write to?
true
rescue
false
end
end
def check_exception
begin
ActiveRecord::Base.connection.execute("SELECT 1")
nil
rescue Exception => e
return e.message
end
begin
# logic to check write to database, which table should i write to?
nil
rescue Exception => e
return e.message
end
end
我已经尝试像上面那样实现读取健康检查,但不知道如何实现写入健康检查?有没有什么方法可以实现写健康检查,而无需在数据库中为健康检查创建新表。
实现写入健康检查的逻辑应该是什么?