From 594f4b8857e535c7779c55d69d5716d78a5bb50c Mon Sep 17 00:00:00 2001 From: kahirokunn Date: Fri, 24 Jan 2025 11:01:45 +0900 Subject: [PATCH] feat: Allow infinite reconnect retries with -1 setting Enable supavisor to maintain connections when the database is intentionally down. This supports external systems that dynamically start and scale database instances based on supavisor metrics, allowing for "scale to zero" scenarios. --- lib/supavisor/db_handler.ex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/supavisor/db_handler.ex b/lib/supavisor/db_handler.ex index edbfde85..ecee6161 100644 --- a/lib/supavisor/db_handler.ex +++ b/lib/supavisor/db_handler.ex @@ -110,7 +110,7 @@ defmodule Supavisor.DbHandler do ] maybe_reconnect_callback = fn reason -> - if data.reconnect_retries > @reconnect_retries and data.client_sock != nil, + if @reconnect_retries != -1 and data.reconnect_retries > @reconnect_retries and data.client_sock != nil, do: {:stop, {:failed_to_connect, reason}}, else: {:keep_state_and_data, {:state_timeout, reconnect_timeout(data), :connect}} end