From aeac20d7add4b0be282e29da12448141fff45bac Mon Sep 17 00:00:00 2001 From: Eduard Urbach Date: Thu, 15 Jun 2017 17:45:59 +0200 Subject: [PATCH] Added a retry for network requests --- jobs/avatars/Avatar.go | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/jobs/avatars/Avatar.go b/jobs/avatars/Avatar.go index 2b82c650..21f19343 100644 --- a/jobs/avatars/Avatar.go +++ b/jobs/avatars/Avatar.go @@ -5,6 +5,7 @@ import ( "fmt" "image" "net/http" + "time" "github.com/animenotifier/arn" "github.com/parnurzeal/gorequest" @@ -28,11 +29,19 @@ func AvatarFromURL(url string, user *arn.User) *Avatar { // Download response, data, networkErr := gorequest.New().Get(url).EndBytes() + // Retry after 5 seconds if service unavailable + if response.StatusCode == http.StatusServiceUnavailable { + time.Sleep(5 * time.Second) + response, data, networkErr = gorequest.New().Get(url).EndBytes() + } + + // Network errors if networkErr != nil { avatarLog.Error("NET", user.Nick, url, networkErr) return nil } + // Bad status codes if response.StatusCode != http.StatusOK { avatarLog.Error("NET", user.Nick, url, response.StatusCode) return nil