Вот моя проверка работоспособности базы данных:
@Readiness
@ApplicationScoped
@Slf4j
public class DatabaseConnectionHealthCheck implements HealthCheck {
@Inject
PgPool pgPool;
@Override
public HealthCheckResponse call() {
final HealthCheckResponseBuilder responseBuilder = HealthCheckResponse.named("Database connection health check");
try {
pgPool.getConnection().await().indefinitely();
log.info("Database Connection Health Check - Success");
responseBuilder.up();
} catch( CompletionException e ){
log.info("Database Connection Health Check - Failure - Cause {}", e.getMessage());
responseBuilder
.down()
.withData(
"Cause",
e.getMessage()
);
}
return responseBuilder.build();
}
}
Проблема в том, что делайте .await (). Неопределенно (), а я этого не хочу (io.vertx.core.VertxException: поток заблокирован )
Как responseBuiler.up () реагировать / подписываться?
Спасибо