AsyncRetryPolicy الفصل
نكهة غير متزامنة لنهج إعادة المحاولة.
يمكن تكوين نهج إعادة المحاولة غير المتزامنة في البنية الأساسية لبرنامج ربط العمليات التجارية مباشرة، أو تعديلها على أساس كل استدعاء.
- توريث
-
azure.core.pipeline.policies._retry.RetryPolicyBaseAsyncRetryPolicyazure.core.pipeline.policies._base_async.AsyncHTTPPolicyAsyncRetryPolicy
الدالمنشئ
AsyncRetryPolicy(**kwargs: Any)
معلمات الكلمة الأساسية فقط
الاسم | الوصف |
---|---|
retry_total
|
إجمالي عدد عمليات إعادة المحاولة التي يجب السماح بها. له الأسبقية على عدد آخر. القيمة الافتراضية هي 10. |
retry_connect
|
عدد الأخطاء المتعلقة بالاتصال لإعادة المحاولة. هذه هي الأخطاء التي تظهر قبل إرسال الطلب إلى الخادم البعيد، والذي نفترض أنه لم يشغل الخادم لمعالجة الطلب. القيمة الافتراضية هي: 3. |
retry_read
|
كم مرة لإعادة المحاولة على أخطاء القراءة. يتم رفع هذه الأخطاء بعد إرسال الطلب إلى الخادم، لذلك قد يكون للطلب آثار جانبية. القيمة الافتراضية هي: 3. |
retry_status
|
كم مرة لإعادة المحاولة على رموز الحالة السيئة. القيمة الافتراضية هي: 3. |
retry_backoff_factor
|
عامل تراجع لتطبيقه بين المحاولات بعد المحاولة الثانية (يتم حل معظم الأخطاء على الفور عن طريق محاولة ثانية دون تأخير). سيتم وضع نهج إعادة المحاولة في وضع السكون ل: {عامل التراجع} * (2 ** ({عدد إجمالي عمليات إعادة المحاولة} - 1)) ثانية. إذا كان backoff_factor هو 0.1، فستنام إعادة المحاولة ل [0.0s، 0.2s، 0.4s، ...] بين عمليات إعادة المحاولة. القيمة الافتراضية هي 0.8. |
retry_backoff_max
|
الحد الأقصى لوقت التراجع. القيمة الافتراضية هي 120 ثانية (دقيقتان). |
أمثلة
تكوين نهج إعادة محاولة غير متزامن.
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"],
)
الأساليب
configure_retries |
تكوين إعدادات إعادة المحاولة. |
get_backoff_time |
إرجاع وقت التراجع الحالي. |
get_retry_after |
احصل على قيمة Retry-After بالثوان. |
increment |
زيادة عدادات إعادة المحاولة. |
is_exhausted |
التحقق من ترك أي عمليات إعادة محاولة. |
is_retry |
التحقق من أن التعليمة البرمجية للأسلوب/الحالة قابلة لإعادة المحاولة. استنادا إلى قوائم السماح ومتغيرات التحكم مثل عدد إجمالي عمليات إعادة المحاولة للسماح بها، وما إذا كان يجب احترام عنوان Retry-After، وما إذا كان هذا العنوان موجودا، وما إذا كان رمز الحالة الذي تم إرجاعه موجودا في قائمة رموز الحالة التي ستتم إعادة المحاولة عليها عند وجود العنوان المذكور أعلاه. السلوك هو:
|
no_retries |
تعطيل عمليات إعادة المحاولة. |
parse_retry_after |
مساعد لتحليل Retry-After والحصول على القيمة في ثوان. |
send |
يستخدم نهج إعادة المحاولة المكون لإرسال الطلب إلى النهج التالي في البنية الأساسية لبرنامج ربط العمليات التجارية. |
sleep |
السكون بين محاولات إعادة المحاولة. سيحترم هذا الأسلوب عنوان استجابة الخادم |
update_context |
التحديثات محفوظات إعادة المحاولة في سياق البنية الأساسية لبرنامج ربط العمليات التجارية. |
configure_retries
تكوين إعدادات إعادة المحاولة.
configure_retries(options: Dict[str, Any]) -> Dict[str, Any]
المعلمات
الاسم | الوصف |
---|---|
options
مطلوب
|
وسيطات الكلمة الأساسية من السياق. |
المرتجعات
النوع | الوصف |
---|---|
إملاء يحتوي على إعدادات ومحفوظات لإعادة المحاولة. |
get_backoff_time
إرجاع وقت التراجع الحالي.
get_backoff_time(settings: Dict[str, Any]) -> float
المعلمات
الاسم | الوصف |
---|---|
settings
مطلوب
|
إعدادات إعادة المحاولة. |
المرتجعات
النوع | الوصف |
---|---|
قيمة التراجع الحالية. |
get_retry_after
احصل على قيمة Retry-After بالثوان.
get_retry_after(response: PipelineResponse[Any, AllHttpResponseType]) -> float | None
المعلمات
الاسم | الوصف |
---|---|
response
مطلوب
|
عنصر PipelineResponse |
المرتجعات
النوع | الوصف |
---|---|
قيمة Retry-After بالثوان. |
increment
زيادة عدادات إعادة المحاولة.
increment(settings: Dict[str, Any], response: PipelineRequest[HTTPRequestType] | PipelineResponse[HTTPRequestType, AllHttpResponseType] | None = None, error: Exception | None = None) -> bool
المعلمات
الاسم | الوصف |
---|---|
settings
مطلوب
|
إعدادات إعادة المحاولة. |
response
|
كائن استجابة البنية الأساسية لبرنامج ربط العمليات التجارية. القيمة الافتراضية: None
|
error
|
حدث خطأ أثناء الطلب، أو لا شيء إذا تم تلقي الاستجابة بنجاح. القيمة الافتراضية: None
|
المرتجعات
النوع | الوصف |
---|---|
ما إذا كانت أي محاولة إعادة محاولة متوفرة True إذا توفرت المزيد من محاولات إعادة المحاولة، خطأ بخلاف ذلك |
is_exhausted
التحقق من ترك أي عمليات إعادة محاولة.
is_exhausted(settings: Dict[str, Any]) -> bool
المعلمات
الاسم | الوصف |
---|---|
settings
مطلوب
|
إعدادات إعادة المحاولة |
المرتجعات
النوع | الوصف |
---|---|
خطأ إذا كان لديك المزيد من عمليات إعادة المحاولة. صحيح إذا تم استنفاد إعادة المحاولة. |
is_retry
التحقق من أن التعليمة البرمجية للأسلوب/الحالة قابلة لإعادة المحاولة.
استنادا إلى قوائم السماح ومتغيرات التحكم مثل عدد إجمالي عمليات إعادة المحاولة للسماح بها، وما إذا كان يجب احترام عنوان Retry-After، وما إذا كان هذا العنوان موجودا، وما إذا كان رمز الحالة الذي تم إرجاعه موجودا في قائمة رموز الحالة التي ستتم إعادة المحاولة عليها عند وجود العنوان المذكور أعلاه.
السلوك هو:
-
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
المعلمات
الاسم | الوصف |
---|---|
settings
مطلوب
|
إعدادات إعادة المحاولة. |
response
مطلوب
|
عنصر PipelineResponse |
المرتجعات
النوع | الوصف |
---|---|
صحيح إذا كانت التعليمة البرمجية للأسلوب/الحالة قابلة لإعادة المحاولة. خطأ إذا لم يكن قابلا لإعادة المحاولة. |
no_retries
تعطيل عمليات إعادة المحاولة.
no_retries() -> ClsRetryPolicy
المرتجعات
النوع | الوصف |
---|---|
نهج إعادة المحاولة مع تعطيل عمليات إعادة المحاولة. |
parse_retry_after
مساعد لتحليل Retry-After والحصول على القيمة في ثوان.
parse_retry_after(retry_after: str) -> float
المعلمات
الاسم | الوصف |
---|---|
retry_after
مطلوب
|
رأس Retry-After |
المرتجعات
النوع | الوصف |
---|---|
قيمة Retry-After بالثوان. |
send
يستخدم نهج إعادة المحاولة المكون لإرسال الطلب إلى النهج التالي في البنية الأساسية لبرنامج ربط العمليات التجارية.
async send(request: PipelineRequest[HTTPRequestType]) -> PipelineResponse[HTTPRequestType, AsyncHTTPResponseType]
المعلمات
الاسم | الوصف |
---|---|
request
مطلوب
|
كائن PipelineRequest |
المرتجعات
النوع | الوصف |
---|---|
إرجاع PipelineResponse أو ظهور الخطأ إذا تم تجاوز الحد الأقصى لإعادة المحاولة. |
sleep
السكون بين محاولات إعادة المحاولة.
سيحترم هذا الأسلوب عنوان استجابة الخادم Retry-After
وسينام مدة الوقت المطلوب. إذا لم يكن ذلك موجودا، فسيستخدم تراجعا أسيا. بشكل افتراضي، عامل التراجع هو 0 وسيعود هذا الأسلوب على الفور.
async sleep(settings: Dict[str, Any], transport: AsyncHttpTransport[HTTPRequestType, AsyncHTTPResponseType], response: PipelineResponse[HTTPRequestType, AsyncHTTPResponseType] | None = None) -> None
المعلمات
الاسم | الوصف |
---|---|
settings
مطلوب
|
إعدادات إعادة المحاولة. |
transport
مطلوب
|
نوع نقل HTTP. |
response
|
عنصر PipelineResponse. القيمة الافتراضية: None
|
update_context
التحديثات محفوظات إعادة المحاولة في سياق البنية الأساسية لبرنامج ربط العمليات التجارية.
update_context(context: PipelineContext, retry_settings: Dict[str, Any]) -> None
المعلمات
الاسم | الوصف |
---|---|
context
مطلوب
|
سياق البنية الأساسية لبرنامج ربط العمليات التجارية. |
retry_settings
مطلوب
|
إعدادات إعادة المحاولة. |
السمات
BACKOFF_MAX
الحد الأقصى لوقت التراجع.
BACKOFF_MAX = 120
next
مؤشر إلى النهج التالي أو النقل (ملتف كنهج). سيتم تعيين عند إنشاء البنية الأساسية لبرنامج ربط العمليات التجارية.
next: AsyncHTTPPolicy[HTTPRequestType, AsyncHTTPResponseType]
Azure SDK for Python
الملاحظات
https://aka.ms/ContentUserFeedback.
قريبًا: خلال عام 2024، سنتخلص تدريجيًا من GitHub Issues بوصفها آلية إرسال ملاحظات للمحتوى ونستبدلها بنظام ملاحظات جديد. لمزيد من المعلومات، راجعإرسال الملاحظات وعرضها المتعلقة بـ