← Timeout | Retry(中文) | Error Handling →
The SDK retries on network errors and throttling. Business logic errors are not retried.
import volcenginesdkcore
from volcenginesdkcore.retryer.backoff_strategy import ExponentialWithRandomJitterBackoffStrategy
from volcenginesdkcore.retryer.retry_condition import DefaultRetryCondition
configuration = volcenginesdkcore.Configuration()
configuration.ak = "Your ak"
configuration.sk = "Your sk"
configuration.auto_retry = True
configuration.num_max_retries = 4
configuration.min_retry_delay_ms = 200
configuration.max_retry_delay_ms = 6000
configuration.backoff_strategy = ExponentialWithRandomJitterBackoffStrategy()
configuration.retry_condition = DefaultRetryCondition()
configuration.retry_error_codes = {"AccessDenied"}
volcenginesdkcore.Configuration.set_default(configuration)The default retry condition includes:
- Retry on network errors.
- Retry on server throttling errors.
- Retry on user-specified error codes (
retry_error_codes).
- Implement your own retry condition:
from volcenginesdkcore.retryer.retry_condition import RetryCondition
class CustomRetryCondition(RetryCondition):
def should_retry(self, response, err):
retry_error_codes = self.retry_error_codes
return False- Reuse the default condition logic:
from volcenginesdkcore.retryer.retry_condition import DefaultRetryCondition
class CustomRetryCondition(DefaultRetryCondition):
def should_retry(self, response, err):
should_retry = super(CustomRetryCondition, self).should_retry(response, err)
return False| Name | Description | Formula |
|---|---|---|
NoBackoffStrategy |
No backoff, retry immediately | delay = 0.0 |
ExponentialBackoffStrategy |
Exponential backoff with bounds | delay = min(min_retry_delay * 2ⁿ, max_retry_delay) |
ExponentialWithRandomJitterBackoffStrategy |
Exponential with jitter | base = min(min_retry_delay · 2ⁿ, max_retry_delay)delay = base + U(0, base) |
- Implement your own strategy:
from volcenginesdkcore.retryer.backoff_strategy import BackoffStrategy
class CustomBackoffStrategy(BackoffStrategy):
def compute_delay(self, retry_count):
min_retry_delay = self.min_retry_delay
max_retry_delay = self.max_retry_delay
return 0.0- Reuse built-in strategy:
from volcenginesdkcore.retryer.backoff_strategy import ExponentialBackoffStrategy
class CustomBackoffStrategy(ExponentialBackoffStrategy):
def compute_delay(self, retry_count):
delay = super(CustomBackoffStrategy, self).compute_delay(retry_count)
return 0.0← Timeout | Retry(中文) | Error Handling →