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



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

  1. /登录获取 API 密钥
  2. /customOrdersApi 获取订单

这两个电话的响应时间都太长了。CPU 利用率在调用期间也会达到最大值。

CPU-apache2

我在监视Magento缓存(var/cache(时发现了一个有趣的行为,它每次都会创建一个WSDL文件,并在执行结束后将其删除。该 WSDL 缓存文件的id是大写的mage---345_WSDL_CONFIG_GLOBAL。已经缓存了小写法师的WSDL文件---345_wsdl_config_global但Magento没有选择它。之后,我深入研究了Magento核心文件,发现在code/Mage/core/Model/Cache.php中,函数_id($id(将id转换为大写。我把它注释掉了,Magento开始选择缓存的小写WSDL文件。响应时间急剧减少,两个电话开始花费不到 3 秒的时间。

仅供参考,Magento Core API WSDL缓存已设置为true。

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

谢谢

我遇到了同样的问题。到目前为止,我唯一发现的:

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

如果找到此查询DELETE FROM sales_flat_quote WHERE updated_at < DATE_SUB(Now(),INTERVAL 60 DAY)只保留过去 60 天。 MagentoExchange - 如何处理巨大的sales_flat_quote表

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

最新更新