Skip to content

Commit

Permalink
Change the sleeptime to be fixed 15 seconds instead of progressive. …
Browse files Browse the repository at this point in the history
…Look for Retry-After response header on 404 responses before restarting
  • Loading branch information
vvuksan committed Jul 7, 2023
1 parent 7f9e54c commit 1720e23
Showing 1 changed file with 12 additions and 10 deletions.
22 changes: 12 additions & 10 deletions api.go
Original file line number Diff line number Diff line change
Expand Up @@ -2926,7 +2926,7 @@ func (sc *Client) CreateOrUpdateEdgeDeploymentService(corpName, siteName, fastly
return err
}

var sleepTime = 4 * time.Second
var sleepTime = 15 * time.Second
for i := 0; i < 6; i++ {
resp, err := sc.doRequestDetailed("PUT", fmt.Sprintf("/v0/corps/%s/sites/%s/edgeDeployment/%s", corpName, siteName, fastlySID), string(b))

Expand All @@ -2937,24 +2937,26 @@ func (sc *Client) CreateOrUpdateEdgeDeploymentService(corpName, siteName, fastly
case http.StatusOK: // 200
return err
case http.StatusBadRequest: // 400
body, err := io.ReadAll(resp.Body)
if err != nil {
return err
}
return errMsg(body) // Typically incorrect user info
fallthrough
case http.StatusUnauthorized: // 401
body, err := io.ReadAll(resp.Body)
if err != nil {
return err
}
return errMsg(body) // Typically incorrect user info
case http.StatusNotFound: // 404
// Wait and send another request
sleepTime *= 2
time.Sleep(sleepTime)
// Only sleep if Retry-After response header is available
if resp.Header.Get("Retry-After") != "" {
time.Sleep(sleepTime)
} else {
body, err := io.ReadAll(resp.Body)
if err != nil {
return err
}
return errMsg(body) // 404 happened for some other reason
}
default: // Something else
// Wait and send another request
sleepTime *= 2
time.Sleep(sleepTime)
}
}
Expand Down

0 comments on commit 1720e23

Please sign in to comment.