2017-01-20 3 views
0

私は多くの時間がかかりますprestashopモジュール専用のwebserviceに取り組んでいます。 webserviceはすべての呼び出しで送料を返すので、もし私が4つのトランスポータを持っていれば、8つの呼び出しを行います(blocカートは4つ、注文ページではshippongコストを得るために4つ)。 この時間を短縮する方法はありますか?静的なvarを使用するような使用。 私はキャッシュを試しましたが、wsdlが既に私のサーバーにあるので何の効果もありません。ソープコールに多くの時間がかかります

+0

を使用すると、SOAPクライアントオブジェクトの_cache_wsdl_オプションを設定することがありますか?応答をファイルにキャッシュすることで要求を減らすことができます。最初にファイルの値をチェックし、要求された値がキャッシュファイルにない場合は、SOAP要求を実行します。あまりにも多くの時間がかかるものは、石鹸を使ってチェックすることもできます。間違ってフォーマットされたxml、またはそれが相手側のサーバーなので、リクエストですか? – Marcel

+0

'directory/name.wsdl'からcache_wsdlを使用するのはなぜですか? 私はsoap uiを試していませんでしたが、私はprestashop用のデバッグプロファイラを持っています –

答えて

2

あなたは、パフォーマンスを改善するために、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); 
     } 

幸運

関連する問題