7

我正在使用 VB.NET 来处理 Magento API。在遇到需要关联数组的调用之前,我一直在成功使用 SOAP v1。在一天左右的不幸之后,我决定尝试 v2,它包含我需要的所有对象。v2 可以工作,但是非常非常慢。要更新一个库存物品库存,大约需要一分半钟的时间来登录并进行更新,而使用 v1 可能不到 10 秒。这让我想起了为什么我首先选择了 v1。

我的问题是是否有任何方法可以提高 v2 的性能。我无法想象我需要它的程度,但我想我会问。我已经启用了缓存。如果可能的话,让 v1 接受关联数组的替代方法似乎是一个挑战。

4

1 回答 1

22

WSDL 请求可能需要很长时间的原因有很多,但我首先要检查的是WSDL缓存的设置。当您对 Magento 进行 API 调用时,Magento 使用 PHP 的SoapServer对象。对象需要获取自己的SoapServerWSDL文件才能操作,而这个文件的生成和获取可能是一件耗时的事情。

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

并寻找“启用 WSDL 缓存”。将此设置为 yes,您将看到一些 API 性能改进。

此设置可能不存在于您的 Magento 版本中 - 如果是这种情况,您可能对Mercury API 扩展(由我创建和销售)感兴趣,其中包含适用于旧版本 Magento 的此功能的 API 改进。如果您没有扩展的预算,那么Mage_Api_Model_Server_Adapter_Soap旧版本的 Magento 会禁用此缓存。

于 2013-01-11T19:39:42.230 回答