gpt4 book ai didi

Python - 如何捕获gevent套接字超时异常

转载 作者:太空宇宙 更新时间:2023-11-04 03:46:12 24 4
gpt4 key购买 nike

import gevent.monkey
gevent.monkey.patch_socket()
import requests
from gevent.pool import Pool
import socket

urls = ["http://www.iraniansingles.com"]


def check_urls(urls):
pool = Pool(1)
for url in urls:
pool.spawn(fetch, url)
pool.join()

def fetch(url):
print url
try:
resp = requests.get(url, verify=False, timeout=5.0)
print resp.status_code
except socket.timeout:
print "SocketTimeout"

check_urls(urls)

如果我删除前 2 行,我的程序将打印 SocketTimeout。但是使用 monkeypatch,我的程序会永远等待。

谁能告诉我如何使用 monkeypatch 捕获套接字超时异常?

最佳答案

问题是 gevent 默认超时设置为 None。所以我们必须手动设置默认套接字超时。

from gevent import socket
socket.setdefaulttimeout(5)

关于Python - 如何捕获gevent套接字超时异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23768896/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com