龙空技术网

解决php下访问webservice慢的方法

太阳照坏人 138

前言:

现在兄弟们对“php怎么对接wsdl接口”可能比较关心,兄弟们都需要剖析一些“php怎么对接wsdl接口”的相关文章。那么小编也在网络上网罗了一些有关“php怎么对接wsdl接口””的相关文章,希望你们能喜欢,大家一起来了解一下吧!

最近朋友有个项目用到了webservice,但是在访问的时候超级慢,慢到难以忍受,第二次访问的时候速度虽然快很多了,但是访问速度还是明显偏慢。webservice效率是有点低,但是不至于此啊!

在和朋友详细了解了项目的运行环境后,终于查明了访问速度慢的原因。

项目的运行环境是在windows环境下,而php.ini下的关于soap的访问参数有以下几个:

php.ini下的soap节,关于soap的访问设置

这是配置指令的简短说明。

soap.wsdl_cache_enabled

integer

启用或禁用wsdl缓存功能:1:启用,0:禁用。

soap.wsdl_cache_dir

string

设置缓存文件的缓存目录。

soap.wsdl_cache_ttl

integer

缓存文件的有效期,超出有效期将重新获取wsdl缓存,时间单位:秒。

soap.wsdl_cache

integer

如果启用了wsdl缓存功能,此设置决定了缓存的类型:

WSDL_CACHE_NONE (0) //不缓存

WSDL_CACHE_DISK (1) //硬盘缓存

WSDL_CACHE_MEMORY (2) //内存缓存

WSDL_CACHE_BOTH (3) //硬盘和内存缓存

soap.wsdl_cache_limit

设定最大可以缓存的wsdl的个数,根据项目实际情况设定。

由于php.ini的默认缓存目录/tmp在windows环境下是不存在的,导致wsdl无法缓存,从而每次从服务端获取wsdl文件,引起调用服务时很慢。

将此处设置为windows下正确的访部路径,即可解决访问服务慢的问题。

在项目调试阶段,可以禁用缓存,以便service端变更,由于缓存问题引起无法及时更新的问题发生。

在生产环境下,再打开缓存,但是要注意,当服务端变更时,要注意清除缓存的wsdl文件。

标签: #php怎么对接wsdl接口