最近工作中遇到一个需要使用 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 形式的接口。