解決AEM發佈中的傳出API請求逾時問題
本文說明從外部API擷取大型資料集時,如何在Adobe Experience Manager (AEM)發佈中解決間歇性逾時問題,並提供避免平台層級逾時錯誤的策略。
說明 description
環境
Adobe Experience Manager (AEM)發佈(所有版本,包括AEM as a Cloud Service)
症狀
- 當AEM發佈從外部API擷取大型資料集(例如詳細目錄資料)時,會發生間歇性逾時。
- 外部API需要比平台層級逾時更長的時間來傳回第一個位元組,導致 ServiceUnavailable 或第一個位元組逾時錯誤。
- 這些逾時會造成資料擷取程式發生失敗。
原因
AEM Publish會對傳出HTTP連線強制實施平台層級逾時。 如果外部API的回應速度很慢,來自AEM Publish的同步請求會超過此逾時,導致錯誤和資料擷取失敗。
解決方法 resolution
請依照下列步驟解決問題:
-
在AEM發佈程式碼中檢閱HTTP使用者端設定:
- 針對傳出HTTP請求到外部API設定明確的連線和讀取逾時。 如果您的程式碼未指定自己的逾時,平台會強制使用全域逾時(例如: 10秒用於連線,60秒用於讀取)。
-
最佳化您的整合,以避免長時間執行同步呼叫:
-
批次或分頁清查擷取請求,以便每個個別API呼叫處理較小的資料子集,並在平台逾時視窗內順利完成。
-
例如,不是在單一呼叫中要求所有詳細目錄專案,而是要求較小的頁面(例如:每次呼叫 500 或 1000 個專案)並視需要彙總結果。
-
-
儘可能實作快取或預先計算清查資料:
- 將經常存取的詳細目錄資料儲存在快取中,或是在非尖峰時段預先計算該資料,以減少重複大型API呼叫的需求。
-
將長期執行的清查提取移至非同步處理:
- 非同步觸發詳細目錄更新(例如:透過排程工作或背景背景背景背景背景背景背景背景工作),並將快取或預先擷取的資料提供給一般使用者,而非讓頁面要求等待第三方API回應。
-
如果您需要的逾時時間超過平台所允許的時間,請重新設計整合以避免同步處理長時間執行的呼叫。 不支援增加平台層級逾時。
-
進行這些變更後,請確認清查擷取成功完成,且不再發生逾時錯誤。
recommendation-more-help
experience-cloud-kcs-help-kbarticles