Add check for database session in healthcheck. (#232)

* Add check for database session in healthcheck.

* Add curl test for healthcheck.
This commit is contained in:
Kavin 2022-03-29 09:49:42 +01:00 committed by GitHub
parent 6376401d98
commit 5b6dc2b097
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 10 additions and 1 deletions

View File

@ -44,7 +44,13 @@ public class ServerLauncher extends MultithreadedHttpServerLauncher {
AsyncServlet mainServlet(Executor executor) {
RoutingServlet router = RoutingServlet.create()
.map(GET, "/healthcheck", request -> getRawResponse("OK".getBytes(UTF_8), "text/plain", "no-store"))
.map(GET, "/healthcheck", AsyncServlet.ofBlocking(executor, request -> {
try (Session ignored = DatabaseSessionFactory.createSession()) {
return getRawResponse("OK".getBytes(UTF_8), "text/plain", "no-store");
} catch (Exception e) {
return getErrorResponse(e, request.getPath());
}
}))
.map(GET, "/version", AsyncServlet.ofBlocking(executor, request -> getRawResponse(Constants.VERSION.getBytes(UTF_8), "text/plain", "no-store")))
.map(HttpMethod.OPTIONS, "/*", request -> HttpResponse.ofCode(200))
.map(GET, "/webhooks/pubsub", request -> HttpResponse.ok200().withPlainText(Objects.requireNonNull(request.getQueryParameter("hub.challenge"))))

View File

@ -3,6 +3,9 @@
CURLOPTS=(-i -s -S -o /dev/null -f -w "%{http_code}\tTime:\t%{time_starttransfer}\t%{url_effective}\n")
HOST=127.0.0.1:8080
# Healthcheck Test
curl ${CURLOPTS[@]} $HOST/healthcheck || exit 1
# Version Test
curl ${CURLOPTS[@]} $HOST/version || exit 1