我有一个Python程序,可以为我的项目向Firebase数据库REST API发送大量补丁请求,每15分钟大约有5-15k个请求。我首先尝试同时发送这些,将每个调用放入自己的线程中,我反复得到这个错误:
发生异常:HTTPSConnectionPool(host ='my-app.firebaseio.com', port = 443):使用url超出了最大重试次数:/items/item-id/.json(引发 通过 NewConnectionError(':无法建立新连接:[Errno 8]提供nodename或servname,或者不知道',))
当我限制项目数量时,每个间隔只发生约100个请求,没有问题。我试过的一件事就是分散请求,使它们每15分钟发生60秒,但仍然没有用。
传递给每个线程的函数如下所示:
def make_request(self, val):
url = "https://my-project.firebaseio.com/items/" + self.item_id + "/.json"
try:
self.s.patch(url, json.dumps({"my-key": val}), headers=None, timeout=None)
except Exception as e:
print("Exception occurred: " + str(e))
答案 0 :(得分:0)
你有没有试过升级pyOpenSSL库?
否则,pip install -U pyopenssl