Как я могу выполнить проверку работоспособности приложения на основе Rails в Render?
Для рендеринга требуется конечная точка /health, но когда я создаю ее в своем приложении и впервые развертываю, я не могу развернуть, потому что приложение не может загрузиться без выполнения миграции.
похоже, что для проверки работоспособности Render.com требуется, чтобы конечная точка работоспособности отвечала ОК даже до того, как миграция была запущена. как я могу этого добиться?
4 ответа
Вы можете напрямую записать это в файл маршрутов
get '/health_check', to: proc { [200, {}, ['success']] }
Это сработает для вас
Вы можете использовать жемчужину rails-healthcheck (https://github.com/linqueta/rails-healthcheck) для этого просто:
Установите драгоценный камень и запустите генератор
rails g healthcheck:install
и звоните / проверяйте работоспособность и вуаля !
Rails 7 теперь предоставляет контроллер проверки работоспособности по умолчанию.
Теперь мы можем посетить /up, чтобы проверить, запущено ли приложение. Если приложение работоспособно, оно вернет код состояния 200. В противном случае он вернет код состояния 503 (https://blog.saeloun.com/2023/02/27/rails-introduces-default-health-check-controller/#:~:text=With%20the%20latest% 20изменения%2C%20мы,возврат%20а%20200%20статус%20код)
создать файл
lib/health_check.rb
HealthCheck = Rack::Builder.new do
use Rack::CommonLogger
map '/' do
run lambda { |env| [200, {'Content-Type' => 'text/plain'}, ['OK']] }
end
end
создать файл
config/initializers/health_check.rb
require './lib/health_check.rb'
Затем в вашем
routes.rb
файл,
mount HealthCheck, at: "/health"