我使用soap协议来调用wsdl文件和XML格式。但是,通常会有莫名其妙的服务不可用。
无法估计呼叫频率,但是在呼叫失败后,可以重试。但这不是最根本的解决方案,我想找到一种更好的方法。
from zeep import Client
import xmltodict
client = Client('FSUService.wsdl')
# update_url_in_wsdl(url)
client.service._binding_options['address'] = url
response = client.service.invoke(data)
res = xmltodict.parse(response)
来自http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html的,它定义了以下状态代码:
10.5.4 503服务不可用 由于暂时的服务器过载或维护,服务器当前无法处理该请求。这意味着这是一个暂时性状况,经过一段时间的延迟后会缓解。如果知道的话,延迟的长度可以在Retry-After头中指出。如果没有给出Retry-After,则客户端应该像处理500响应那样处理响应。 注意:503状态代码的存在并不意味着服务器在过载时必须使用它。一些服务器可能希望简单地拒绝连接。 因此,是的,服务器过载可能是原因。为了弄清楚如何处理此问题,您可能想要与服务该服务的任何人进行讨论,以了解他们可以容忍的条件。然后,如果您在SO上搜索“节流Web请求”,那么一旦您知道自己的要求,就会发现有关如何实施节流的许多讨论。