2013-01-11 2 views
7

Magento API로 작업 할 때 VB.NET을 사용하고 있습니다. 연관 배열이 필요한 호출이 나올 때까지 SOAP v1을 성공적으로 사용하고있었습니다. 하루가 지나면 운이 없어서 내가 필요한 모든 객체가있는 v2를 사용하기로 결정했습니다. v2는 작동하지만 매우 느립니다. 하나의 재고 항목 인벤토리를 업데이트하는 데에는 로그인하는 데 약 1 분 30 초가 소요되었으며 v1에서는 10 초 미만 이었지만 업데이트를 수행했습니다. 그것은 왜 내가 처음에 v1을 선택했는지 상기시켰다.Magento SOAP v1 vs. v2 성능

제 질문은 v2의 성능을 향상시킬 수있는 방법이 있다면 제 질문입니다. 나는 내가 필요로하는 범위까지는 있다고 상상할 수 없다. 그러나 나는 물을 것이라고 생각했다. 이미 캐싱을 사용할 수 있습니다. 가능하다면 v1이 연관 배열을 받아들이도록하는 대안은 가능한 것 같습니다.

답변

22

WSDL 요청이 오랜 시간이 걸릴 수있는 이유는 많이 있지만 우선 확인해야 할 점은 WSDL 캐시에 대한 설정입니다. Magento로 API 호출을하면 Magento는 PHP의 SoapServer 객체를 사용합니다. SoapServer 개체는 작동하기 위해 자체 WSDL 파일을 가져와야하며,이 파일의 생성 및 가져 오기는 시간이 많이 걸릴 수 있습니다. "사용 WSDL 캐시"에 대한

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

및보고

이동합니다. 이 값을 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를 만들 때이 작업을 수행해야한다고 생각합니다. 이 스톰 씨에 대한 통찰력? –

관련 문제