Open
Description
There's a few different retry mechanisms in the codebase, and each has its own approach/gotchas that should be detailed for the readers.
A few approaches used in warehouse:
- pyramid_retry and warehouse config
- Celery built-in,
retry()
- Celery built-in,
@task(autoretry_for=...
Other things to note, might be out of scope:
request.http
setsmax_retries
to 1 and doesn't appear to be configurable (yet)- There's
@google.api_core.retry
decorators in currently-unusedGCSFileStorage/GCSSimpleStorage
classes, might be helpful to note that when using a service's SDKs, use their exceptions/retries? Uncertain. Response.retry_after
- sets a header to inform clients on when to retry