Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Retry middleware #4

Open
yordis opened this issue Mar 16, 2022 · 1 comment
Open

Add Retry middleware #4

yordis opened this issue Mar 16, 2022 · 1 comment

Comments

@yordis
Copy link
Member

yordis commented Mar 16, 2022

Problem Statement

Reading this article, https://blog.bearer.sh/add-retry-to-api-calls-javascript-node/ Maybe would be a good idea to add a retry middleware

Solution Brainstorm

function fetchRetry(url, options = {}, retries = 3, backoff = 300) {
  /* 1 */
  const retryCodes = [408, 500, 502, 503, 504, 522, 524]
  return fetch(url, options)
    .then(res => {
      if (res.ok) return res.json()

      if (retries > 0 && retryCodes.includes(res.status)) {
        setTimeout(() => {
          /* 2 */
          return fetchRetry(url, options, retries - 1, backoff * 2) /* 3 */
        }, backoff) /* 2 */
      } else {
        throw new Error(res)
      }
    })
    .catch(console.error)
}
@stale
Copy link

stale bot commented May 26, 2022

This issue has been automatically marked as "Stale: Discard". If this issue still relevant, please leave any comment (for example, "bump"), and we'll keep it open. We are sorry that we haven't been able to prioritize it yet. If you have any new additional information, please include it with your comment.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant