* Timeout for external API calls

This commit is contained in:
Phil Zhitnikov 2024-01-03 01:32:41 +04:00
parent b4a0b35008
commit cbc2419bfe
4 changed files with 7 additions and 3 deletions

View File

@ -104,7 +104,7 @@ class CDEKClient:
retries += 1
prepared = self.session.prepare_request(request)
try:
r = self.session.send(prepared)
r = self.session.send(prepared, timeout=settings.EXTERNAL_API_TIMEOUT_SEC)
except:
continue

View File

@ -27,7 +27,7 @@ class CurrencyAPIClient:
while retries < self.MAX_RETRIES:
retries += 1
prepared = self.session.prepare_request(request)
r = self.session.send(prepared)
r = self.session.send(prepared, timeout=settings.EXTERNAL_API_TIMEOUT_SEC)
# TODO: handle/log errors
return r

View File

@ -1,6 +1,7 @@
from urllib3.util import parse_url
from urllib.parse import urljoin, parse_qs
from django.conf import settings
import requests
@ -25,7 +26,7 @@ class PoizonClient:
while retries < self.MAX_RETRIES:
retries += 1
prepared = self.session.prepare_request(request)
r = self.session.send(prepared)
r = self.session.send(prepared, timeout=settings.EXTERNAL_API_TIMEOUT_SEC)
# TODO: handle/log errors
return r

View File

@ -24,6 +24,7 @@ BASE_DIR = Path(__file__).resolve().parent.parent
# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = 'django-insecure-e&9j(^9z7p7qs-@d)vftjz4%xqu0#3mmn@+$wzwh!%-dwjecm-'
# External API settings
CDEK_CLIENT_ID = 'wZWtjnWtkX7Fin2tvDdUE6eqYz1t1GND'
CDEK_CLIENT_SECRET = 'lc2gmrmK5s1Kk6FhZbNqpQCaATQRlsOy'
@ -31,6 +32,8 @@ POIZON_TOKEN = 'IRwNgBxb8YQ'
CURRENCY_GETGEOIP_API_KEY = 'b8ab1ad89adbb1559cb8ccfea7ee03e9123986b7'
EXTERNAL_API_TIMEOUT_SEC = 60
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = bool(int(os.environ.get("DJANGO_DEBUG") or 0))
DISABLE_PERMISSIONS = False