Magento SOAP API V2需要很长时间才能响应

时间:2017-07-20 05:16:46

标签: magento soap

我使用Magento(1.9社区版)SOAP API V2开发了自定义API来获取订单。问题是API响应时间超过25秒。 涉及几个API调用。

  1. / login获取API密钥
  2. / customOrdersApi获取订单
  3. 这两个电话都需要很长时间才能响应。呼叫期间CPU利用率也最大化。

    CPU-apache2

    我在监控Magento缓存(var / cache)时发现了一个有趣的行为,它每次创建一个WSDL文件,并在执行结束后删除它。 WSDL缓存文件的 id 是大写 mage --- 345_WSDL_CONFIG_GLOBAL 。已经缓存了WSDL文件的小写 mage --- 345_wsdl_config_global ,但Magento没有选择它。之后我深入挖掘了Magento的核心文件,并在代码/ Mage / core / Model / Cache.php中找到,函数_id($ id)将id转为大写。我评论说,Magento开始选择缓存的低级WSDL文件。响应时间急剧减少,两次通话开始时间不到3秒。

    FYI Magento Core API WSDL缓存已设置为true。

    有没有人经历过Magento的这种行为?有没有一种有效的方法来提高Magento SOAP API的速度?

    由于

1 个答案:

答案 0 :(得分:0)

我有过,仍然有同样的问题。到目前为止,我发现的唯一内容是:

我看到使用SQL命令show processlist;查看MySQL数据库,它会尝试在每个请求上更新sales_flat_quote表。如果桌子很大,则需要很多时间。

如果找到此查询 DELETE FROM sales_flat_quote WHERE updated_at < DATE_SUB(Now(),INTERVAL 60 DAY)仅保留最近60天。 MagentoExchange - How to handle huge sales_flat_quote tables

如果将其设置为5天,则我的API调用所需时间减少了50%。