解決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

請依照下列步驟解決問題:

  1. 在AEM發佈程式碼中檢閱HTTP使用者端設定:

    • 針對傳出HTTP請求到外部API設定明確的連線和讀取逾時。 如果您的程式碼未指定自己的逾時,平台會強制使用全域逾時(例如: 10秒​用於連線,60秒​用於讀取)。
  2. 最佳化您的整合,以避免長時間執行同步呼叫:

    • 批次或分頁清查擷取請求,以便每個個別API呼叫處理較小的資料子集,並在平台逾時視窗內順利完成。

    • 例如,不是在單一呼叫中要求所有詳細目錄專案,而是要求較小的頁面(例如:每次呼叫​ 500 ​或​ 1000 ​個專案)並視需要彙總結果。

  3. 儘可能實作快取或預先計算清查資料:

    • 將經常存取的詳細目錄資料儲存在快取中,或是在非尖峰時段預先計算該資料,以減少重複大型API呼叫的需求。
  4. 將長期執行的清查提取移至非同步處理:

    • 非同步觸發詳細目錄更新(例如:透過排程工作或背景背景背景背景背景背景背景背景工作),並將快取或預先擷取的資料提供給一般使用者,而非讓頁面要求等待第三方API回應。
  5. 如果您需要的逾時時間超過平台所允許的時間,請重新設計整合以避免同步處理長時間執行的呼叫。 不支援增加平台層級逾時。

  6. 進行這些變更後,請確認清查擷取成功完成,且不再發生逾時錯誤。

recommendation-more-help
experience-cloud-kcs-help-kbarticles