AEMaaCS中大量翻譯作業的自訂PageEvent處理常式間歇性失敗

在Adobe Experience Manager as a Cloud Service (AEMaaCS)中,大量翻譯工作完成時,翻譯頁面的自訂後置處理無法一致觸發。 因此,即使翻譯成功完成,部分翻譯頁面也不會執行別名更新和預覽復寫。 當自訂邏輯在大量處理期間無法偵測到完成的轉換時,就會發生問題。 若要解決此問題,請使用支援的工作層級API來偵測已完成的翻譯。

說明 description

環境

  • 產品:Adobe Experience Manager as a Cloud Service (AEMaaCS) — 網站
  • 案例:使用協力廠商翻譯聯結器(例如Lionbridge)執行的大量翻譯工作
  • 限制:問題間歇發生,只影響特定環境,包括中繼和生產環境

問題/症狀

  • 大量翻譯完成後,別名設定不會套用至某些翻譯頁面。
  • 某些翻譯的頁面不會觸發預覽復寫。
  • 此問題會斷斷續續地發生,並不會影響大量翻譯工作中的每個頁面。
  • 所有受影響的頁面都會完全轉譯,並顯示正確的JCR屬性。
  • 受影響頁面不會叫用事件處理常式和相關後處理管道。

解決方法 resolution

若要解決問題,請遵循下列步驟:

  1. 檢閱自訂PageEvent處理常式所使用的偵測邏輯,並注意目前的實作不正確地依賴PageModification.getUserId()符合特定服務使用者,以及偵測修改路徑中的內部屬性,例如cq:translationStatus
  2. 請注意,在AEM as a Cloud Service上,PageModification.getUserId()可以傳回oak:unknown,導致以使用者為基礎的檢查不可靠,而且因為批次和非同步翻譯回寫,所有修改事件中並非都一定會存在內部屬性(如cq:translationStatus)。
  3. 更新翻譯完成偵測方法,避免依賴內部或未記載的JCR屬性或特定使用者ID,因為這些機制不受支援且可能會變更,而是使用支援的訊號,例如翻譯工作事件與公開翻譯REST API。
  4. 透過Adobe Experience Manager API紀錄的支援翻譯REST API端點,查詢翻譯工作狀態,並使用傳回的工作狀態來觸發必要的後續處理動作(例如別名更新或預覽復寫),以在頁面層級以程式設計方式偵測完成的翻譯。
  5. 請注意,如果內部Java API優於HTTP呼叫,目前沒有為此目的而支援的內部Java API,並且已向Adobe工程提出增強功能請求以解決此限制。
  6. 確認在更新偵測邏輯以僅依賴支援的API和訊號後,所有預期的後續處理動作都能在大量翻譯工作後可靠地執行。

附註:

  • 不支援依賴內部JCR屬性變更或特定服務使用者來處理事件,且可能會因平台更新而中斷。
  • 公開翻譯REST API目前支援現成可用的翻譯專案,在未來的增強功能之前,對第三方聯結器專案的支援可能會受到限制。

相關閱讀

getTranslationJob

recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f