提交 c4cb9937 编写于 作者: W wizardforcel

设置超时机制

上级 f830b4ef
...@@ -32,8 +32,11 @@ def image_download(url): ...@@ -32,8 +32,11 @@ def image_download(url):
content = [] content = []
last_chunk_time = None last_chunk_time = None
try: try:
for chunk in requests.get(url, headers=headers, timeout=10, stream=True).iter_content(128 * 1024): for chunk in request_retry('GET', url,
if last_chunk_time is not None and time.time() - last_chunk_time > 5: headers=headers, stream=True
).iter_content(128 * 1024):
if last_chunk_time is not None and \
time.time() - last_chunk_time > 5:
return return
content.append(chunk) content.append(chunk)
last_chunk_time = time.time() last_chunk_time = time.time()
...@@ -71,6 +74,7 @@ def log(message): ...@@ -71,6 +74,7 @@ def log(message):
print(f"[{time.strftime('%Y-%m-%d %H:%M:%S')}] {message}") print(f"[{time.strftime('%Y-%m-%d %H:%M:%S')}] {message}")
def request_retry(method, url, retry=5, **kwargs): def request_retry(method, url, retry=5, **kwargs):
kwargs.setdefault('timeout', 10)
for i in range(retry): for i in range(retry):
try: try:
return requests.request(method, url, **kwargs) return requests.request(method, url, **kwargs)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册