Skip to content

Commit e859a48

Browse files
committed
Make healthcheck repo calls parallel
1 parent 69bbae4 commit e859a48

File tree

1 file changed

+14
-2
lines changed

1 file changed

+14
-2
lines changed

lib/plausible_web/controllers/api/system_controller.ex

+14-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
defmodule PlausibleWeb.Api.SystemController do
22
use PlausibleWeb, :controller
3+
require Logger
34

45
def info(conn, _params) do
56
build =
@@ -20,9 +21,20 @@ defmodule PlausibleWeb.Api.SystemController do
2021
json(conn, %{ok: true})
2122
end
2223

24+
@task_timeout 15_000
2325
def readiness(conn, _params) do
26+
postgres_health_task =
27+
Task.async(fn ->
28+
Ecto.Adapters.SQL.query(Plausible.Repo, "SELECT 1", [])
29+
end)
30+
31+
clickhouse_health_task =
32+
Task.async(fn ->
33+
Ecto.Adapters.SQL.query(Plausible.ClickhouseRepo, "SELECT 1", [])
34+
end)
35+
2436
postgres_health =
25-
case Ecto.Adapters.SQL.query(Plausible.Repo, "SELECT 1", []) do
37+
case Task.await(postgres_health_task, @task_timeout) do
2638
{:ok, _} ->
2739
"ok"
2840

@@ -32,7 +44,7 @@ defmodule PlausibleWeb.Api.SystemController do
3244
end
3345

3446
clickhouse_health =
35-
case Ecto.Adapters.SQL.query(Plausible.ClickhouseRepo, "SELECT 1", []) do
47+
case Task.await(clickhouse_health_task, @task_timeout) do
3648
{:ok, _} ->
3749
"ok"
3850

0 commit comments

Comments
 (0)