2013-01-11 12 views
7

Magento APIを使用するにはVB.NETを使用しています。私は、連想配列が必要な呼び出しを実行するまで、SOAP v1を正常に使用していました。 1日かそこらの不運の後、私は必要なすべてのオブジェクトを持っているv2を試してみることに決めました。 v2は動作しますが、非常に遅いです。 1つの在庫アイテムの在庫を更新するには、v1の場合は10秒未満ではなく、ログインに約1分半かかりました。それはなぜ私が最初にv1を選んだかを思い出させた。Magento SOAP v1とv2のパフォーマンス

私の質問は、v2のパフォーマンスを向上させる方法があるかどうかです。私はそれが必要な程度まであるとは想像できませんが、私は頼むと思っていました。私はすでにキャッシングを有効にしています。 v1に連想配列を受け入れる代わりに、可能であれば挑戦するように思われます。

答えて

22

WSDLリクエストに長時間かかるかもしれない理由はたくさんありますが、最初に確認するのは、WSDLキャッシュの設定です。 MagentoにAPI呼び出しを行うと、MagentoはPHPのSoapServerオブジェクトを使用します。 SoapServerオブジェクトは、動作するために独自のWSDLファイルをフェッチする必要があり、このファイルの生成とフェッチは時間がかかることがあります。

System -> Configuration -> Magento Core API -> General Settings 

移動し、 "WSDLキャッシュを有効にする" を探してください。これをyesに設定すると、APIのパフォーマンスが向上します。

この設定は、お使いのMagentoのバージョンには存在しない可能性があります。これは、旧バージョンのMagentoのAPI機能を含むMercury API拡張機能(私が作成して販売している)に興味がある場合です。拡張機能の予算がない場合、Mage_Api_Model_Server_Adapter_Soapは古いバージョンのMagentoがこのキャッシュを無効にするクラスです。

+0

あなたは正しかったです。それはv1とほぼ同じ時間に落ちました。 – gwgeller

+0

私は軽量v1のようですが、私はVB.NETで問題があるためにv2に切り替えました。あなたが目を離さないように別の質問をするかもしれないと思います) – gwgeller

+0

adminのクリアキャッシュ機能を使用すると、このキャッシュがクリアされているのが不思議です。私はv2で独自のAPIを作成するときにこれを行う必要があると思います。この嵐の洞察は? –

関連する問題