0
我正在致力于prestashop模块的webservice,这需要很多时间。 webservice每次通话都会返回一个运输费用,所以如果我有4个运输商prestashop做8个电话(4个用于购物车,4个用于获得订单页上的购物费用)。 有没有解决方案来缩短这个时间?像使用静态var一样使用。 我试过缓存但没有效果,因为wsdl已经在我的服务器上了。肥皂呼叫需要很多时间
我正在致力于prestashop模块的webservice,这需要很多时间。 webservice每次通话都会返回一个运输费用,所以如果我有4个运输商prestashop做8个电话(4个用于购物车,4个用于获得订单页上的购物费用)。 有没有解决方案来缩短这个时间?像使用静态var一样使用。 我试过缓存但没有效果,因为wsdl已经在我的服务器上了。肥皂呼叫需要很多时间
您必须缓存Web服务结果,以提高性能:
if (Cache::isStored('unique-id-for-your-module-and-request-result-' . Tools::jsonEncode($request_params)))
{
$shipment_options = Cache::retrieve('unique-id-for-your-module-and-request-result-' . Tools::jsonEncode($request_params));
}
else
{
$shipment_options = $api_or_soap->getEstimateCost($request_params);
if ($shipment_options)
Cache::store('unique-id-for-your-module-and-request-result-' . Tools::jsonEncode($request_params), $shipment_options);
}
好运
是否设置为SOAP客户端对象_cache_wsdl_选项?您可以通过在文件中缓存响应来减少请求。您可以首先检查文件中的值,如果请求的值不在缓存文件中,请执行soap请求。您还可以通过soap ui查看需要花费多少时间。这是请求,因为auf格式不正确的xml或者它是另一边的服务器? – Marcel
当我从'directory/name.wsdl'使用它时,为什么要使用cache_wsdl? 我没有尝试soap ui但我有调试分析器prestashop –