Python中文
首页
教程
问答
标签
搜索
登录
注册
如何不阻止与python请求建立初始连接?
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我有一个服务器,它使用请求对另一个可能正在运行或不在运行的服务器进行查询。如果服务器没有运行,我不想阻塞很长时间;我可以马上处理错误。但是,timeout参数似乎不适用于建立初始连接的过程。你知道吗</p> <p>从终端,我运行:</p> <pre><code>>>> import time >>> import requests >>> t1 = time.time() ; exec("try: requests.get('http://192.168.99.100/', timeout=1.0)\nexcept: pass") ; t2 = time.time() ; t2 - t1 21.00611114501953 </code></pre> <p>这大约需要21秒,与我给出的超时无关。我也尝试过使用eventlet's timeout,但结果是一样的:</p> <pre><code>>>> import time >>> import eventlet >>> requests = eventlet.import_patched('requests') >>> t1 = time.time() ; exec("try: \n with eventlet.Timeout(1): requests.get('http://192.168.99.100/')\nexcept: pass") ; t2 = time.time() ; t2 - t1 21.00276017189026 </code></pre> <p>我得到的连接错误是:</p> <pre><code>ConnectionError: ('Connection aborted.', error(11, 'Resource temporarily unavailable')) </code></pre> <p>最后,我在Windows的Linux子系统下运行python,这可能与套接字的工作方式不同。你知道吗</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>您可以使用任务管理器(如<code>celery</code>),然后在工作线程上设置超时。我认为<code>requests</code>支持<code>gevent</code>而不是<code>eventlet</code>,这可能就是为什么使用<code>eventlet</code>会出现同样的问题。你知道吗</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何在PyObj中使用respondsToSelector和performSelector
4 回答
如何在pyobj中停止线程
1 回答
如何在pyobj中生成线程
1 回答
如何在pyodbc中为记录集指定游标类型?
6 回答
如何在pyodbc中从用户处获取表名,同时避免SQL注入?
1 回答
如何在pyodbc中使用executemany运行多个SELECT查询
1 回答
如何在pyodbc中同时在n个游标上并行运行n个进程?
6 回答
如何在pyodbc中控制连接池的大小?
4 回答
如何在pyodbc中自动调用fetchall()而不进行异常处理?
4 回答
如何在pyODBC查询中参数化日期戳?
9 回答
如何在pyodbc输出转换器函数中解压sqlserver DATETIME?
7 回答
如何在pyodb中安装所有驱动程序
4 回答
如何在pyodb嵌套循环中调用不同的查询
10 回答
如何在pyomo.environ公司modu装置
2 回答
如何在Pyomoconstraints中建模逻辑或量词
2 回答
如何在Pyomo中为约束使用数组
9 回答
如何在pyomo中使用集和范围集的多级索引?
10 回答
如何在PYOMO中分配伪二进制变量
6 回答
如何在Pyomo中创建OR约束?
1 回答
如何在Pyomo中动态地将变量添加到列表中?
9 回答