Junior — Middle
Ինչ մեթոդներ կարելի է օգտագործել հարցման կատարմանը արագ վերականգնելու համար սխալի կամ ուշացման դեպքում:
sobes.tech AI
Պատասխան AI-ից
Python-ում խնդրանքի արագ վերականգնումը սխալի կամ ուշացման դեպքում կարող է իրականացվել մի քանի մոտեցումներով:
-
Կրկնվող փորձեր (Retry)
- Օգտագործել ցիկլ, որը պարունակում է սահմանափակ փորձերի քանակ:
- Օգտագործել
retryingկամtenacityգրադարանները, որոնք թույլ են տալիս ճկուն կերպով կարգավորել կրկնությունները հետաձգումներով:
-
Ժամանակային սահմանափակումներ (Timeouts)
- Կարգավորել ցանցային հարցումների ժամանակային սահմանափակումներ (օրինակ,
requests-ումtimeoutպարամետրի միջոցով), որպեսզի չսպասենք անսահման ժամանակ:
- Կարգավորել ցանցային հարցումների ժամանակային սահմանափակումներ (օրինակ,
-
Ասինխրոն կատարման (Asynchronous execution)
- Օգտագործել
asyncio-ն հարցումների կատարման համար, հնարավորություն տալով չեղարկելու կամ փոխելու մյուս առաջադրանքներին:
- Օգտագործել
-
Անհատականացման սխալների կառավարում
- Հավաքել ցանցային սխալների կամ ժամանակային սահմանափակումների հետ կապված արտահայտությունները և փորձել կրկին:
Օրինակ tenacity գրադարանի օգտագործմամբ:
from tenacity import retry, stop_after_attempt, wait_fixed
import requests
@retry(stop=stop_after_attempt(3), wait=wait_fixed(2))
def fetch_url(url):
response = requests.get(url, timeout=5)
response.raise_for_status()
return response.text
try:
data = fetch_url('https://example.com')
except Exception as e:
print(f"Անհնար է տվյալներ ստանալ՝ {e}")
Այս կոդը փորձելու է կատարել հարցումը մինչև 3 անգամ, միջանկյալ ընդմիջումով 2 վայրկյան։