From 888eac8703d9da15b26e365c8c9727e028d6dd9d Mon Sep 17 00:00:00 2001 From: Jamil Date: Wed, 8 Feb 2023 10:57:39 -0800 Subject: [PATCH] Fix recursive conncheck timer (#1416) Fixes #1414 --- apps/fz_http/lib/fz_http/connectivity_check_service.ex | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/apps/fz_http/lib/fz_http/connectivity_check_service.ex b/apps/fz_http/lib/fz_http/connectivity_check_service.ex index 8ce78c9d5..69608d261 100644 --- a/apps/fz_http/lib/fz_http/connectivity_check_service.ex +++ b/apps/fz_http/lib/fz_http/connectivity_check_service.ex @@ -21,16 +21,21 @@ defmodule FzHttp.ConnectivityCheckService do @impl GenServer def init(state) do if enabled?() do - :timer.send_after(@initial_delay, :perform) + :timer.send_after(@initial_delay, :init_timer) end {:ok, state} end + @impl GenServer + def handle_info(:init_timer, _state) do + :timer.send_interval(interval(), :perform) + {:noreply, post_request()} + end + # XXX: Consider passing state here to implement exponential backoff in case of errors. @impl GenServer def handle_info(:perform, _state) do - :timer.send_interval(interval(), :perform) {:noreply, post_request()} end