7

私はVB.NETを使用してMagentoAPIを操作しているところです。連想配列を必要とする呼び出しに遭遇するまで、SOAPv1を正常に使用していました。運が悪かった1日かそこらの後、私は必要なすべてのオブジェクトを備えたv2を試すことにしました。v2は機能しますが、非常に低速です。1つの在庫アイテムの在庫を更新するには、v1では10秒未満であるのに対し、ログインして更新を行うのに約1分半かかりました。そもそもなぜv1を選んだのかを思い出しました。

私の質問は、v2のパフォーマンスを改善する方法があるかどうかです。必要な範囲であるとは思えませんが、お願いしたいと思いました。すでにキャッシュを有効にしています。可能であれば、v1に連想配列を受け入れるようにする方法は難しいようです。

4

1 に答える 1

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がこのキャッシュを無効にするクラスです。

于 2013-01-11T19:39:42.230 に答える