最近工作中遇到一个需要使用 php 的 soap 调用远程函数接口查询一个数据量在几亿级别的数据查询操作,那么问题来了,由于数据量的庞大,接口响应的时间势必会增加到一个很可怕的程度,大概是 2 分钟左右,获取这个执行的结果需要的时间会不会超过 soap 的时限?如果有其他的解决方案,该怎么操作呢,目的是获取接口的响应结果。
最近工作中遇到一个需要使用 php 的 soap 调用远程函数接口查询一个数据量在几亿级别的数据查询操作,那么问题来了,由于数据量的庞大,接口响应的时间势必会增加到一个很可怕的程度,大概是 2 分钟左右,获取这个执行的结果需要的时间会不会超过 soap 的时限?如果有其他的解决方案,该怎么操作呢,目的是获取接口的响应结果。
SOAP 是简单对象访问协议(Simple Object Access Protocol 的首字母缩写),用来访问 Web Service。SOAP 在底层通常使用 HTTP 的协议,所以每次调用必然有时间限制(TimeOut)。但是这个限制是 Server 端。
根据你的描述,你是服务的使用者,属于 Client,只要 Server 端能够保证做出正确的响应之前连接不断开,理论上来说你就可以拿到想要的结果。
你可以试试以 “PHP Soap Client Timeout” 为关键词进行搜索。
这是 Google 给出的前2个结果:
PHP: SoapClient::SoapClient - Manual
web services - PHP SoapClient Timeout - Stack Overflow
建议使用 RESTful 形式的接口。