gpt4 book ai didi

python - ConnectionError,最大重试次数超过 url,(由无引起)

转载 作者:太空狗 更新时间:2023-10-30 00:19:12 25 4
gpt4 key购买 nike

它说的是什么意思:

requests.exceptions.ConnectionError: None: Max retries exceeded with url: /myurl (Caused by None)

“Caused by None”具体是什么意思?

我有一个 python 客户端和一个简单的 clojure 服务器在同一台机器上运行。服务器运行在具有 4 个线程的 compojure+http-kit 上。客户端使用 multiprocessing.Pool 和 3 个工作进程使用 3 到 4 个进程连续提交 POST 请求。

每隔一段时间,客户端就会死于上述的连接错误。我在客户端设置了 retries=3,并将服务器上的队列大小增加到 1000000,但没有任何效果。

如有任何帮助,我们将不胜感激。

编辑:更正,我实际上发送的是 POST 请求而不是 GET。

实际的脚本太大,无法在这里发布,但基本上它是这样工作的。我有一个用一些数据调用 post 的函数:

def post_func(my_data, config):
return requests.post(my_url, data=json.dumps({"data": my_data, "config": config}))

包装 multiprocessing.Pool 的类:

class Executor(object):
def __init__(self, nprocs):
self.pool = Pool(processes=nprocs)

def execute(self, func, list_of_data):
return self.pool.map(func, list_of_data)

另一个以不同配置调用 Executor.execute() 的函数:

function eval(executor, list_of_data, config):
start = timer()
func = partial(post_func, config=config)
results = executor.execute(func, list_of_data)
taken = timer()-start
return results

所有 eval() 调用都重复使用单个执行器。然后将 eval() 包装在评分函数中并提供给 pyswarm 进行优化:

pso(score_func, lbs, ubs, swarmsize=20, maxiter=20, debug=True)

编辑:我可能应该早点做的事情,但是正确捕获 ConnectionError 给了我这个:

ConnectionError: HTTPConnectionPool(host='127.0.0.1', port=5000): Max retries exceeded with url: /my_url (Caused by NewConnectionError('<requests.packages.urllib3.connection.HTTPConnection object at 0x7f0ccb4b5550>: Failed to establish a new connection: [Errno 99] Cannot assign requested address',))

我现在重写了脚本以重用单个请求。 session ,很快就会知道这是否能解决问题。

最佳答案

重用单个请求 session 为我解决了这个问题。

关于python - ConnectionError,最大重试次数超过 url,(由无引起),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37763510/

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