feat(card): 增加请求重试,异常错误提醒

This commit is contained in:
xingc
2025-04-17 18:15:49 +08:00
parent 862ae8fcca
commit f216d694d0
3 changed files with 33 additions and 9 deletions

View File

@@ -7,13 +7,13 @@
import logging
import re
from curl_cffi import requests
from curl_cffi import requests, CurlError
from fake_useragent import UserAgent
from parsel import Selector
from simple_spider_tool import jsonpath, regx_match, format_json
from config import settings
from core.base.exceptions import SearchCardNotFound, SearchCardRetry
from core.base.exceptions import SearchCardNotFound, SearchCardRetry, SearchCardRetryFail
from core.utils.helper import async_retry
logger = logging.getLogger(__name__)
@@ -46,6 +46,7 @@ class SiteApi:
data=None,
json=None,
use_abroad_proxy: bool = False,
retry_num: int = 3,
**kwargs
):
headers = {
@@ -59,11 +60,19 @@ class SiteApi:
'http': settings.OVERSEAS_PROXY,
'https': settings.OVERSEAS_PROXY
}
r = await self.session.request(
method, url, headers=headers, params=params, data=data, json=json, **kwargs
)
logger.debug(f'耗时:{url} {r.elapsed}')
return r
for i in range(retry_num):
try:
r = await self.session.request(
method, url, headers=headers, params=params, data=data, json=json, **kwargs
)
logger.debug(f'耗时:{url} {r.elapsed}')
return r
except CurlError as e:
logger.error(e)
if i == retry_num - 1:
raise SearchCardRetryFail('请重试,如多次无效反馈管理员')
async def get(self, url, headers=None, params=None, **kwargs):
return await self.request('GET', url, headers=headers, params=params, **kwargs)