AEMaaCS中大量翻譯作業的自訂PageEvent處理常式間歇性失敗
在Adobe Experience Manager as a Cloud Service (AEMaaCS)中,大量翻譯工作完成時,翻譯頁面的自訂後置處理無法一致觸發。 因此,即使翻譯成功完成,部分翻譯頁面也不會執行別名更新和預覽復寫。 當自訂邏輯在大量處理期間無法偵測到完成的轉換時,就會發生問題。 若要解決此問題,請使用支援的工作層級API來偵測已完成的翻譯。
說明 description
環境
- 產品:Adobe Experience Manager as a Cloud Service (AEMaaCS) — 網站
- 案例:使用協力廠商翻譯聯結器(例如Lionbridge)執行的大量翻譯工作
- 限制:問題間歇發生,只影響特定環境,包括中繼和生產環境
問題/症狀
- 大量翻譯完成後,別名設定不會套用至某些翻譯頁面。
- 某些翻譯的頁面不會觸發預覽復寫。
- 此問題會斷斷續續地發生,並不會影響大量翻譯工作中的每個頁面。
- 所有受影響的頁面都會完全轉譯,並顯示正確的JCR屬性。
- 受影響頁面不會叫用事件處理常式和相關後處理管道。
解決方法 resolution
若要解決問題,請遵循下列步驟:
- 檢閱自訂PageEvent處理常式所使用的偵測邏輯,並注意目前的實作不正確地依賴
PageModification.getUserId()符合特定服務使用者,以及偵測修改路徑中的內部屬性,例如cq:translationStatus。 - 請注意,在AEM as a Cloud Service上,
PageModification.getUserId()可以傳回oak:unknown,導致以使用者為基礎的檢查不可靠,而且因為批次和非同步翻譯回寫,所有修改事件中並非都一定會存在內部屬性(如cq:translationStatus)。 - 更新翻譯完成偵測方法,避免依賴內部或未記載的JCR屬性或特定使用者ID,因為這些機制不受支援且可能會變更,而是使用支援的訊號,例如翻譯工作事件與公開翻譯REST API。
- 透過Adobe Experience Manager API紀錄的支援翻譯REST API端點,查詢翻譯工作狀態,並使用傳回的工作狀態來觸發必要的後續處理動作(例如別名更新或預覽復寫),以在頁面層級以程式設計方式偵測完成的翻譯。
- 請注意,如果內部Java API優於HTTP呼叫,目前沒有為此目的而支援的內部Java API,並且已向Adobe工程提出增強功能請求以解決此限制。
- 確認在更新偵測邏輯以僅依賴支援的API和訊號後,所有預期的後續處理動作都能在大量翻譯工作後可靠地執行。
附註:
- 不支援依賴內部JCR屬性變更或特定服務使用者來處理事件,且可能會因平台更新而中斷。
- 公開翻譯REST API目前支援現成可用的翻譯專案,在未來的增強功能之前,對第三方聯結器專案的支援可能會受到限制。
3d58f420-19b5-47a0-a122-5c9dab55ec7f