AsyncRetryPolicy Klasa
Asynchroniczny smak zasad ponawiania prób.
Zasady ponawiania prób asynchronicznych w potoku można skonfigurować bezpośrednio lub dostosować dla poszczególnych wywołań.
- Dziedziczenie
-
azure.core.pipeline.policies._retry.RetryPolicyBaseAsyncRetryPolicyazure.core.pipeline.policies._base_async.AsyncHTTPPolicyAsyncRetryPolicy
Konstruktor
AsyncRetryPolicy(**kwargs: Any)
Parametry Tylko słowo kluczowe
Nazwa | Opis |
---|---|
retry_total
|
Całkowita liczba ponownych prób, które mają być dozwolone. Ma pierwszeństwo przed innymi liczbami. Wartość domyślna to 10. |
retry_connect
|
Ile błędów związanych z połączeniem należy ponowić próbę. Są to błędy zgłaszane przed wysłaniem żądania do serwera zdalnego, który zakładamy, że serwer nie wyzwolił przetwarzania żądania. Wartość domyślna to 3. |
retry_read
|
Ile razy ponowić próbę przy błędach odczytu. Te błędy są zgłaszane po wysłaniu żądania do serwera, więc żądanie może mieć skutki uboczne. Wartość domyślna to 3. |
retry_status
|
Ile razy należy ponowić próbę w przypadku nieprawidłowych kodów stanu. Wartość domyślna to 3. |
retry_backoff_factor
|
Współczynnik wycofywania stosowany między próbami po drugiej próbie (większość błędów jest usuwana natychmiast przez drugą próbę bez opóźnienia). Zasady ponawiania prób uśpią: {współczynnik wycofywania} * (2 ** ({liczba ponownych prób} – 1)) sekund. Jeśli backoff_factor wynosi 0,1, ponawianie próby będzie spać dla [0.0s, 0.2s, 0.4s, ...] między ponownymi próbami. Wartość domyślna to 0,8. |
retry_backoff_max
|
Maksymalny czas wolny od pracy. Wartość domyślna to 120 sekund (2 minuty). |
Przykłady
Konfigurowanie zasad ponawiania prób asynchronicznych.
from azure.core.pipeline.policies import AsyncRetryPolicy
retry_policy = AsyncRetryPolicy()
# Total number of retries to allow. Takes precedence over other counts.
# Default value is 10.
retry_policy.total_retries = 5
# How many connection-related errors to retry on.
# These are errors raised before the request is sent to the remote server,
# which we assume has not triggered the server to process the request. Default value is 3
retry_policy.connect_retries = 2
# How many times to retry on read errors.
# These errors are raised after the request was sent to the server, so the
# request may have side-effects. Default value is 3.
retry_policy.read_retries = 4
# How many times to retry on bad status codes. Default value is 3.
retry_policy.status_retries = 3
# A backoff factor to apply between attempts after the second try
# (most errors are resolved immediately by a second try without a delay).
# Retry policy will sleep for:
# {backoff factor} * (2 ** ({number of total retries} - 1))
# seconds. If the backoff_factor is 0.1, then the retry will sleep
# for [0.0s, 0.2s, 0.4s, ...] between retries.
# The default value is 0.8.
retry_policy.backoff_factor = 0.5
# The maximum back off time. Default value is 120 seconds (2 minutes).
retry_policy.backoff_max = 120
# Alternatively you can disable redirects entirely
retry_policy = AsyncRetryPolicy.no_retries()
# All of these settings can also be configured per operation.
policies.append(retry_policy)
async with AsyncPipelineClient[HttpRequest, AsyncHttpResponse](base_url=url, policies=policies) as client:
response = await client._pipeline.run(
request,
retry_total=10,
retry_connect=1,
retry_read=1,
retry_status=5,
retry_backoff_factor=0.5,
retry_backoff_max=60,
retry_on_methods=["GET"],
)
Metody
configure_retries |
Konfiguruje ustawienia ponawiania próby. |
get_backoff_time |
Zwraca bieżący czas wycofywania. |
get_retry_after |
Pobierz wartość Retry-After w sekundach. |
increment |
Zwiększ liczniki ponawiania prób. |
is_exhausted |
Sprawdza, czy zostały ponawiane próby. |
is_retry |
Sprawdza, czy kod metody/stanu można ponowić próbę. Na podstawie list dozwolonych i zmiennych kontrolnych, takich jak liczba ponownych prób, na które należy zezwolić, czy należy przestrzegać nagłówka Retry-After, czy ten nagłówek jest obecny, i czy zwrócony kod stanu znajduje się na liście kodów stanu, które mają być ponawiane na obecność wyżej wymienionego nagłówka. Zachowanie to:
|
no_retries |
Wyłącz ponawianie prób. |
parse_retry_after |
Pomocnik do analizowania Retry-After i uzyskiwania wartości w sekundach. |
send |
Używa skonfigurowanych zasad ponawiania w celu wysłania żądania do następnych zasad w potoku. |
sleep |
Uśpij między próbami ponawiania prób. Ta metoda będzie uwzględniać nagłówek odpowiedzi serwera |
update_context |
Aktualizacje historię ponawiania prób w kontekście potoku. |
configure_retries
Konfiguruje ustawienia ponawiania próby.
configure_retries(options: Dict[str, Any]) -> Dict[str, Any]
Parametry
Nazwa | Opis |
---|---|
options
Wymagane
|
argumenty słów kluczowych z kontekstu. |
Zwraca
Typ | Opis |
---|---|
Dykt zawierający ustawienia i historię ponownych prób. |
get_backoff_time
Zwraca bieżący czas wycofywania.
get_backoff_time(settings: Dict[str, Any]) -> float
Parametry
Nazwa | Opis |
---|---|
settings
Wymagane
|
Ustawienia ponawiania prób. |
Zwraca
Typ | Opis |
---|---|
Bieżąca wartość wycofywania. |
get_retry_after
Pobierz wartość Retry-After w sekundach.
get_retry_after(response: PipelineResponse[Any, AllHttpResponseType]) -> float | None
Parametry
Nazwa | Opis |
---|---|
response
Wymagane
|
Obiekt PipelineResponse |
Zwraca
Typ | Opis |
---|---|
Wartość Retry-After w sekundach. |
increment
Zwiększ liczniki ponawiania prób.
increment(settings: Dict[str, Any], response: PipelineRequest[HTTPRequestType] | PipelineResponse[HTTPRequestType, AllHttpResponseType] | None = None, error: Exception | None = None) -> bool
Parametry
Nazwa | Opis |
---|---|
settings
Wymagane
|
Ustawienia ponawiania prób. |
response
|
Obiekt odpowiedzi potoku. wartość domyślna: None
|
error
|
Wystąpił błąd podczas żądania lub Brak, jeśli odpowiedź została odebrana pomyślnie. wartość domyślna: None
|
Zwraca
Typ | Opis |
---|---|
Czy jakakolwiek próba ponawiania jest dostępna wartość True, jeśli więcej prób ponawiania prób jest dostępnych, w przeciwnym razie wartość False |
is_exhausted
Sprawdza, czy zostały ponawiane próby.
is_exhausted(settings: Dict[str, Any]) -> bool
Parametry
Nazwa | Opis |
---|---|
settings
Wymagane
|
ustawienia ponawiania próby |
Zwraca
Typ | Opis |
---|---|
Fałsz, jeśli masz więcej ponownych prób. Prawda, jeśli próby zostały wyczerpane. |
is_retry
Sprawdza, czy kod metody/stanu można ponowić próbę.
Na podstawie list dozwolonych i zmiennych kontrolnych, takich jak liczba ponownych prób, na które należy zezwolić, czy należy przestrzegać nagłówka Retry-After, czy ten nagłówek jest obecny, i czy zwrócony kod stanu znajduje się na liście kodów stanu, które mają być ponawiane na obecność wyżej wymienionego nagłówka.
Zachowanie to:
-
If status_code < 400: don't retry
-
Else if Retry-After present: retry
-
Else: retry based on the safe status code list ([408, 429, 500, 502, 503, 504])
is_retry(settings: Dict[str, Any], response: PipelineResponse[HTTPRequestType, AllHttpResponseType]) -> bool
Parametry
Nazwa | Opis |
---|---|
settings
Wymagane
|
Ustawienia ponawiania prób. |
response
Wymagane
|
Obiekt PipelineResponse |
Zwraca
Typ | Opis |
---|---|
Wartość True, jeśli kod metody/stanu można ponowić próbę. Fałsz, jeśli nie można ponowić próby. |
no_retries
Wyłącz ponawianie prób.
no_retries() -> ClsRetryPolicy
Zwraca
Typ | Opis |
---|---|
Zasady ponawiania prób z wyłączonymi ponownymi próbami. |
parse_retry_after
Pomocnik do analizowania Retry-After i uzyskiwania wartości w sekundach.
parse_retry_after(retry_after: str) -> float
Parametry
Nazwa | Opis |
---|---|
retry_after
Wymagane
|
nagłówek Retry-After |
Zwraca
Typ | Opis |
---|---|
Wartość Retry-After w sekundach. |
send
Używa skonfigurowanych zasad ponawiania w celu wysłania żądania do następnych zasad w potoku.
async send(request: PipelineRequest[HTTPRequestType]) -> PipelineResponse[HTTPRequestType, AsyncHTTPResponseType]
Parametry
Nazwa | Opis |
---|---|
request
Wymagane
|
Obiekt PipelineRequest |
Zwraca
Typ | Opis |
---|---|
Zwraca wartość PipelineResponse lub zgłasza błąd, jeśli przekroczono maksymalną liczbę ponownych prób. |
sleep
Uśpij między próbami ponawiania prób.
Ta metoda będzie uwzględniać nagłówek odpowiedzi serwera Retry-After
i uśpi czas trwania żądanego czasu. Jeśli tak nie jest, użyje wycofywania wykładniczego. Domyślnie współczynnik wycofywania wynosi 0, a ta metoda zostanie zwrócona natychmiast.
async sleep(settings: Dict[str, Any], transport: AsyncHttpTransport[HTTPRequestType, AsyncHTTPResponseType], response: PipelineResponse[HTTPRequestType, AsyncHTTPResponseType] | None = None) -> None
Parametry
Nazwa | Opis |
---|---|
settings
Wymagane
|
Ustawienia ponawiania prób. |
transport
Wymagane
|
Typ transportu HTTP. |
response
|
Obiekt PipelineResponse. wartość domyślna: None
|
update_context
Aktualizacje historię ponawiania prób w kontekście potoku.
update_context(context: PipelineContext, retry_settings: Dict[str, Any]) -> None
Parametry
Nazwa | Opis |
---|---|
context
Wymagane
|
Kontekst potoku. |
retry_settings
Wymagane
|
Ustawienia ponawiania prób. |
Atrybuty
BACKOFF_MAX
Maksymalny czas wycofywania.
BACKOFF_MAX = 120
next
Wskaźnik do następnych zasad lub transportu (opakowany jako zasady). Zostanie ustawiona podczas tworzenia potoku.
next: AsyncHTTPPolicy[HTTPRequestType, AsyncHTTPResponseType]
Azure SDK for Python
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla