Megosztás a következőn keresztül:


RetryPolicy Osztály

Újrapróbálkozési szabályzat.

A folyamat újrapróbálkoztatási szabályzata közvetlenül konfigurálható, vagy hívásonként módosítható.

Öröklődés
azure.core.pipeline.policies._retry.RetryPolicyBase
RetryPolicy
azure.core.pipeline.policies._base.HTTPPolicy
RetryPolicy

Konstruktor

RetryPolicy(**kwargs: Any)

Csak kulcsszavas paraméterek

Name Description
retry_total
int

Az engedélyezni kívánt újrapróbálkozések teljes száma. Elsőbbséget élvez a többi számlálóval szemben. Az alapértelmezett érték 10.

retry_connect
int

Hány kapcsolattal kapcsolatos hiba után próbálkozzon újra. Ezek a hibák a kérés távoli kiszolgálóra való elküldése előtt merülnek fel, ami feltételezzük, hogy nem aktiválta a kiszolgálót a kérés feldolgozásához. Az alapértelmezett érték 3.

retry_read
int

Hányszor kell újrapróbálkoznia az olvasási hibákon. Ezek a hibák a kérés kiszolgálóra való elküldése után jelentkeznek, így a kérésnek lehetnek mellékhatásai. Az alapértelmezett érték 3.

retry_status
int

Hányszor kell újrapróbálkkoznia a hibás állapotkódokkal. Az alapértelmezett érték 3.

retry_backoff_factor

A második próbálkozás utáni kísérletek közötti visszalépési tényező (a legtöbb hibát azonnal, egy második próbálkozással, késedelem nélkül meg kell oldani). Rögzített módban az újrapróbálkozási szabályzat mindig alvó állapotba kerül a(z) {backoff factor} esetében. "Exponenciális" módban az újrapróbálkozási szabályzat a következőhöz fog aludni: {backoff factor} * (2 ** ({az újrapróbálkozások száma} – 1)) másodperc. Ha a backoff_factor 0,1, akkor az újrapróbálkozás az újrapróbálkozások között [0.0s, 0.2s, 0.4s, ...] állapotban lesz. Az alapértelmezett érték 0,8.

retry_backoff_max
int

A maximális visszaállási idő. Az alapértelmezett érték 120 másodperc (2 perc).

retry_mode

Rögzített vagy exponenciális késleltetés az attemps között, az alapértelmezett érték exponenciális.

timeout
int

A művelet időtúllépési beállítása másodpercben, alapértelmezés szerint 604800s (7 nap).

Példák

Újrapróbálkozási szabályzat konfigurálása.


   from azure.core.pipeline.policies import RetryPolicy

   retry_policy = RetryPolicy()

   # 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 = RetryPolicy.no_retries()

   # All of these settings can also be configured per operation.
   policies.append(retry_policy)
   client: PipelineClient[HttpRequest, HttpResponse] = PipelineClient(base_url=url, policies=policies)
   request = HttpRequest("GET", url)
   pipeline_response = client._pipeline.run(
       request,
       retry_total=10,
       retry_connect=1,
       retry_read=1,
       retry_status=5,
       retry_backoff_factor=0.5,
       retry_backoff_max=120,
       retry_on_methods=["GET"],
   )

Metódusok

configure_retries

Konfigurálja az újrapróbálkozások beállításait.

get_backoff_time

Az aktuális visszalépési időt adja vissza.

get_retry_after

A Retry-After értékének lekérése másodpercben.

increment

Növelje az újrapróbálkozások számlálóit.

is_exhausted

Ellenőrzi, hogy maradt-e újrapróbálkozás.

is_retry

Ellenőrzi, hogy a metódus/állapotkód újrapróbálható-e.

Az engedélyezési listák és a vezérlőváltozók alapján, például az engedélyezett összes újrapróbálkozások száma, a Retry-After fejléc tiszteletben tartása, a fejléc jelen van-e, és hogy a visszaadott állapotkód szerepel-e a fent említett fejléc jelenlétében újrapróbálkozó állapotkódok listájában.

A viselkedés a következő:

  •   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])
    
no_retries

Tiltsa le az újrapróbálkozásokat.

parse_retry_after

Segéd a Retry-After elemzéséhez és az érték másodpercben történő lekéréséhez.

send

Elküldi a PipelineRequest objektumot a következő szabályzatnak. Szükség esetén újrapróbálkozást használ.

sleep

Alvó állapot az újrapróbálkozási kísérletek között.

Ez a metódus figyelembe veszi a kiszolgáló válaszfejlécét Retry-After , és alvó állapotba kerül a kért idő időtartamával. Ha ez nem jelenik meg, exponenciális visszalépést fog használni. Alapértelmezés szerint a visszalépési tényező 0, és ez a metódus azonnal visszatér.

update_context

Frissítések újrapróbálkozás előzményeit a folyamatkörnyezetben.

configure_retries

Konfigurálja az újrapróbálkozások beállításait.

configure_retries(options: Dict[str, Any]) -> Dict[str, Any]

Paraméterek

Name Description
options
Kötelező

kulcsszóargumentumok a környezetből.

Válaszok

Típus Description

Az újrapróbálkozási beállításokat és előzményeket tartalmazó diktálás.

get_backoff_time

Az aktuális visszalépési időt adja vissza.

get_backoff_time(settings: Dict[str, Any]) -> float

Paraméterek

Name Description
settings
Kötelező

Az újrapróbálkozás beállításai.

Válaszok

Típus Description

Az aktuális visszalépési érték.

get_retry_after

A Retry-After értékének lekérése másodpercben.

get_retry_after(response: PipelineResponse[Any, AllHttpResponseType]) -> float | None

Paraméterek

Name Description
response
Kötelező

A PipelineResponse objektum

Válaszok

Típus Description

A Retry-After értéke másodpercben.

increment

Növelje az újrapróbálkozások számlálóit.

increment(settings: Dict[str, Any], response: PipelineRequest[HTTPRequestType] | PipelineResponse[HTTPRequestType, AllHttpResponseType] | None = None, error: Exception | None = None) -> bool

Paraméterek

Name Description
settings
Kötelező

Az újrapróbálkozás beállításai.

response

Folyamat válaszobjektuma.

alapértelmezett érték: None
error

Hiba történt a kérés során, vagy Nincs, ha a válasz sikeresen érkezett.

alapértelmezett érték: None

Válaszok

Típus Description

Ha több újrapróbálkozási kísérlet áll rendelkezésre, akkor az újrapróbálkozási kísérlet értéke Igaz, máskülönben hamis

is_exhausted

Ellenőrzi, hogy maradt-e újrapróbálkozás.

is_exhausted(settings: Dict[str, Any]) -> bool

Paraméterek

Name Description
settings
Kötelező

az újrapróbálkozás beállításai

Válaszok

Típus Description

Hamis, ha több újrapróbálkozás van. Igaz, ha az újrapróbálkozás kimerült.

is_retry

Ellenőrzi, hogy a metódus/állapotkód újrapróbálható-e.

Az engedélyezési listák és a vezérlőváltozók alapján, például az engedélyezett összes újrapróbálkozások száma, a Retry-After fejléc tiszteletben tartása, a fejléc jelen van-e, és hogy a visszaadott állapotkód szerepel-e a fent említett fejléc jelenlétében újrapróbálkozó állapotkódok listájában.

A viselkedés a következő:

  •   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

Paraméterek

Name Description
settings
Kötelező

Az újrapróbálkozás beállításai.

response
Kötelező

A PipelineResponse objektum

Válaszok

Típus Description

Igaz, ha a metódus/állapotkód újrapróbálható. Hamis, ha nem ismételhető.

no_retries

Tiltsa le az újrapróbálkozásokat.

no_retries() -> ClsRetryPolicy

Válaszok

Típus Description

Újrapróbálkozásra vonatkozó szabályzat, amelynek az újrapróbálkozása le van tiltva.

parse_retry_after

Segéd a Retry-After elemzéséhez és az érték másodpercben történő lekéréséhez.

parse_retry_after(retry_after: str) -> float

Paraméterek

Name Description
retry_after
Kötelező
str

Retry-After fejléc

Válaszok

Típus Description

A Retry-After értéke másodpercben.

send

Elküldi a PipelineRequest objektumot a következő szabályzatnak. Szükség esetén újrapróbálkozást használ.

send(request: PipelineRequest[HTTPRequestType]) -> PipelineResponse[HTTPRequestType, HTTPResponseType]

Paraméterek

Name Description
request
Kötelező

A PipelineRequest objektum

Válaszok

Típus Description

Visszaadja a PipelineResponse értéket, vagy hibát jelez, ha túllépte a maximális újrapróbálkozások értékét.

Kivételek

Típus Description
azure.core.exceptions.AzureError if maximum retries exceeded.
azure.core.exceptions.ClientAuthenticationError if authentication

sleep

Alvó állapot az újrapróbálkozási kísérletek között.

Ez a metódus figyelembe veszi a kiszolgáló válaszfejlécét Retry-After , és alvó állapotba kerül a kért idő időtartamával. Ha ez nem jelenik meg, exponenciális visszalépést fog használni. Alapértelmezés szerint a visszalépési tényező 0, és ez a metódus azonnal visszatér.

sleep(settings: Dict[str, Any], transport: HttpTransport[HTTPRequestType, HTTPResponseType], response: PipelineResponse[HTTPRequestType, HTTPResponseType] | None = None) -> None

Paraméterek

Name Description
settings
Kötelező

Az újrapróbálkozás beállításai.

transport
Kötelező

A HTTP-átviteli típus.

response

A PipelineResponse objektum.

alapértelmezett érték: None

update_context

Frissítések újrapróbálkozás előzményeit a folyamatkörnyezetben.

update_context(context: PipelineContext, retry_settings: Dict[str, Any]) -> None

Paraméterek

Name Description
context
Kötelező

A folyamatkörnyezet.

retry_settings
Kötelező

Az újrapróbálkozás beállításai.

Attribútumok

BACKOFF_MAX

Maximális visszalépési idő.

BACKOFF_MAX = 120

next

Mutasson a következő szabályzatra vagy egy átvitelre (házirendként burkolva). A folyamat létrehozásakor lesz beállítva.

next: HTTPPolicy[HTTPRequestType, HTTPResponseType]