如何在 SUDS 连接上设置超时

Posted

技术标签:

【中文标题】如何在 SUDS 连接上设置超时【英文标题】:How to set timeout on SUDS connection 【发布时间】:2017-04-17 19:04:48 【问题描述】:

我正在努力解决应该是一个非常简单的问题。我未能在 SUDS jurko 连接上设置会话超时。我的 WSDL 很好。提取较小的数据集时一切正常。我尝试了几种设置超时的方法。虽然以下没有抱怨/等等,但它也是无效的:

from suds.client import Client
client = Client(authUrl, timeout=600)

默认 90 秒后,我的连接/等似乎失败。不幸的是,这还不足以获得我需要的数据。我收到的错误是

ssl.SSLError: ('The read operation timed out',)

帮助!我猜我的 Google foo 很弱。我已经尝试了很多事情......最后,我不得不寻求帮助。将不胜感激...

【问题讨论】:

如果包含 WSDL 可能会有所帮助。 WSDL 没问题。我正在成功提取数据。我面临的问题是 DEV 副本仅提取约 1,000 条记录。 PROD 副本(相同的 WSDL,不同的服务器)提取约 20,000 条记录。我只是得到一个超时。不幸的是,我不能轻易地发布 WSDL。它在单独的机器/网络/等上。 你运行的是哪个版本? 对不起,伙计们——我已经搬到了另一个项目(和公司)。我从来没有找到解决这个问题的方法。根本原因/条件 (IIRC) 是数据量太大。我不再有权访问代码。幸运的是,从那时起,我就摆脱了处理 SOAP 的恐惧。 :-) 祝不幸的人好运! 【参考方案1】:

虽然这对 OP 没有帮助,但我认为值得一提的是,在 Python 3.9 下,对 Client(...., timeout=300) 的调用似乎正在使用来自 https://github.com/Skylude/suds 的 sudz 版本 1.0.3 - 所以我猜这个问题已解决。

【讨论】:

以上是关于如何在 SUDS 连接上设置超时的主要内容,如果未能解决你的问题,请参考以下文章

如何在flyway创建的postgresql jdbc连接上设置时区?

如何在与 SQLAlchemy 和 psycopg2 的 PostgreSQL 连接上设置“lock_timeout”?

急!苹果Macbook Pro连接不上无线网 显示连接超时

requests.post 可以在慢速(但不是死)连接上超时吗? [复制]

用jdbc连接mysql数据库,执行程序一段时间后控制台报连接超时。why,如何解决!

如何在 Spring 管理的 MySQL JDBC 连接上设置 useUnicode=true 和 characterEncoding=utf8 属性