diff --git a/api_browser.py b/api_browser.py index a5e4f79..c81dfcc 100755 --- a/api_browser.py +++ b/api_browser.py @@ -18,6 +18,11 @@ from urllib.parse import urlsplit from app_config import get_config +import time as _time_module +_MODULE_START_TIME = _time_module.time() +_WARMUP_PERIOD_SECONDS = 60 # 启动后 60 秒内使用更长超时 +_WARMUP_TIMEOUT_SECONDS = 15.0 # 预热期间的超时时间 + config = get_config() BASE_URL = getattr(config, "ZSGL_BASE_URL", "https://postoa.aidunsoft.com") @@ -71,7 +76,6 @@ class APIBrowser: self.log_callback = log_callback self.stop_flag = False self._closed = False # 防止重复关闭 - self._first_request = True self.last_total_records = 0 # 设置代理 @@ -133,10 +137,9 @@ class APIBrowser: def _request_with_retry(self, method, url, max_retries=3, retry_delay=1, **kwargs): """带重试机制的请求方法""" - # 首次请求使用更长超时(10秒),后续使用配置的超时 - if self._first_request: - kwargs.setdefault('timeout', 10.0) - self._first_request = False + # 启动后 60 秒内使用更长超时(15秒),之后使用配置的超时 + if (_time_module.time() - _MODULE_START_TIME) < _WARMUP_PERIOD_SECONDS: + kwargs.setdefault('timeout', _WARMUP_TIMEOUT_SECONDS) else: kwargs.setdefault('timeout', _API_REQUEST_TIMEOUT_SECONDS) last_error = None