From c65a29c252437c84e6269a3443ca785501eb6262 Mon Sep 17 00:00:00 2001 From: Claudio Ortolina Date: Sat, 30 Nov 2024 20:21:51 +0000 Subject: [PATCH] Use more restrictive LastFm request timeouts Experimental: metrics show some long running requests that end up hitting timeouts (at default values), so we make them shorter to leverage retries --- lib/last_fm/api_impl.ex | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/lib/last_fm/api_impl.ex b/lib/last_fm/api_impl.ex index 0903d120..25375ff0 100644 --- a/lib/last_fm/api_impl.ex +++ b/lib/last_fm/api_impl.ex @@ -7,6 +7,15 @@ defmodule LastFm.APIImpl do @base_url "http://ws.audioscrobbler.com/2.0/" + # Experimental: metrics show some long running requests + # that end up hitting timeouts (at default values), + # so we make them shorter to leverage retries + @request_opts [ + pool_timeout: 1000, + receive_timeout: 3000, + request_timeout: 4500 + ] + @impl true def get_recent_tracks(user, api_key) do options = [ @@ -41,7 +50,7 @@ defmodule LastFm.APIImpl do {"User-Agent", "MusicLibrary/0.1.0 ( cloud8421@gmail.com )"} ]) - case Finch.request(req, LastFm.Finch) do + case Finch.request(req, LastFm.Finch, @request_opts) do {:ok, response} when response.status == 200 -> Jason.decode(response.body)