wait up to 10 s to reach Kavenegar and 30 s for its reply
Iranian network paths can be slow; the owner asked for 30 s. The frontend's requestOtp timeout goes to 45 s in the same change so it outlasts both. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -103,9 +103,13 @@ def send_verify_lookup(*, phone: str, template: str, token: str) -> None:
|
||||
)
|
||||
|
||||
|
||||
# کاوهنگار گاهی بیش از ۵ ثانیه طول میکشد (۵٫۴ ثانیه در ۲۰۲۶-۰۹-۲۷)؛ workerهای
|
||||
# gunicorn مهلتِ ۱۲۰ ثانیه دارند و gthread است، پس ۱۰ ثانیه کسی را قفل نمیکند.
|
||||
SMS_READ_TIMEOUT_SECONDS = 10
|
||||
# کاوهنگار گاهی بیش از ۵ ثانیه طول میکشد (۵٫۴ ثانیه در ۲۰۲۶-۰۹-۲۷) و شبکهی ایران
|
||||
# کند میشود؛ صاحبِ پروژه ۳۰ ثانیه خواست. جمعِ دو مهلت (۴۰ ثانیه) باید زیرِ مهلتِ
|
||||
# فرانت برای همین درخواست بماند (`requestOtp` در MathApp_frontend، ۴۵ ثانیه)، وگرنه
|
||||
# کاربر «ارتباط برقرار نشد» میبیند در حالی که پیامک رسیده. gunicorn ۱۲۰ ثانیه و
|
||||
# gthread است؛ مهلتِ nginx و ArvanCloud برای این مسیر سنجیده نشده.
|
||||
SMS_CONNECT_TIMEOUT_SECONDS = 10
|
||||
SMS_READ_TIMEOUT_SECONDS = 30
|
||||
|
||||
|
||||
def _kavenegar_post(*, phone: str, method: str, payload: dict) -> None:
|
||||
@@ -122,7 +126,7 @@ def _kavenegar_post(*, phone: str, method: str, payload: dict) -> None:
|
||||
f'https://api.kavenegar.com/v1/{settings.KAVENEGAR_API_KEY}/{method}',
|
||||
data=payload,
|
||||
# (اتصال، خواندن). وصلنشدن یعنی قطعاً نرفت؛ دیر رسیدنِ جواب یعنی نامعلوم.
|
||||
timeout=(3.05, SMS_READ_TIMEOUT_SECONDS),
|
||||
timeout=(SMS_CONNECT_TIMEOUT_SECONDS, SMS_READ_TIMEOUT_SECONDS),
|
||||
)
|
||||
except requests.ReadTimeout:
|
||||
logger.warning(
|
||||
|
||||
Reference in New Issue
Block a user