工作流程最佳實務

執行和效能

以下列出有關最佳化促銷活動效能的一般准則,包括套用至您工作流程的最佳實務。

有關工作流執行的故障排除指導,請參閱本節

日誌

JavaScript方法​logInfo()​是除錯工作流程的絕佳解決方案。 它很有用,但必須謹慎使用,尤其是對於經常運行的活動:它可以使日誌過載,並顯著增加日誌表的大小。 但您可能還需要​logInfo()​以上。

另外還提供兩種解決方案,以協助您:

  • 將臨時人口結果保存在兩次處決之間

    此選項可在工作流的兩個執行之間保留臨時表。 它可在工作流程屬性的​General​標籤中使用,可用於開發和測試,以監控資料和檢查結果。 您可以在開發環境中使用此選項,但絕不能在生產環境中使用。 保留臨時表可導致資料庫的大小顯著增加,最終達到大小限制。 此外,它還會減緩備份速度。

    只保留工作流上次執行的工作表。 以前執行中的工作表由每天運行的​cleanup​工作流清除。

    注意

    在生產工作流程中,不得勾選此選項。 此選項用於分析結果,僅用於測試,因此只能用於開發或測試環境。

  • 日誌中的SQL查詢

    此選項在工作流屬性的​Execution​頁籤中可用,它將記錄工具從不同活動中生成的所有SQL查詢。 這是瞭解平台實際執行的最佳方式。 不過,這個選項只應在開發期間暫時使用,而不應在生產時啟動。

不再需要記錄檔時,請加以清除。 工作流歷史記錄不會自動清除:預設情況下會保留所有消息。 您可以透過​File > Actions​功能表,或按一下清單上方工具列中的「動作」按鈕,來清除歷史記錄。 選擇清除歷史記錄。
要瞭解如何清除日誌,請參閱文檔

工作流程規劃

  • 請盡量在一天中維持穩定的活動等級,並避免尖峰,以防止例項超載。 若要這麼做,請在一天中平均分發工作流程開始時間。
  • 安排隔夜資料載入以減少資源爭用。
  • 冗長的工作流程可能會對伺服器和資料庫資源造成影響。 分割最長的工作流程,以縮短處理時間。
  • 若要縮短整體執行時間,請以簡化且更快速的活動取代耗時的活動。
  • 避免同時執行超過20個工作流程。 同時執行過多的工作流程時,系統會耗盡資源而變得不穩定。 如需工作流程可能無法啟動的詳細資訊,請參閱此文章

工作流程執行

最好不要將工作流計畫為每15分鐘多運行一次,因為它可能會影響系統的整體效能並在資料庫中建立塊。

請避免將工作流程保留在暫停狀態。 如果您建立暫時工作流程,請確定它能正確完成,而不會維持在​paused​狀態。 如果暫停,則表示您需要保留臨時表,從而增加資料庫的大小。 在「工作流屬性」下指派「工作流監督者」,以便在工作流失敗或系統暫停時傳送警報。

若要避免工作流程處於暫停狀態:

  • 定期檢查您的工作流程,以確保沒有未預期的錯誤。
  • 讓您的工作流程盡可能簡單,例如,將大型工作流程分割為數個不同的工作流程。 您可以使用​External signal​活動根據其他工作流的執行觸發其執行。
  • 避免停用工作流中的流,導致線程開啟並導致許多臨時表佔用大量空間。 請勿在工作流程中保留​Do not enable​或​Enable but do not execute​狀態的活動。

此外,還可停止未使用的工作流程。 持續執行的工作流程會維持與資料庫的連線。

在最少的情況下,僅使用無條件停止。 請勿定期使用此動作。 不對工作流生成的到資料庫的連接執行乾淨的關閉會影響效能。

在引擎選項中執行

在​Workflow properties​窗口中,切勿選中​Execute in the engine​選項。 啟用此選項後,工作流將優先處理,而工作流引擎將停止所有其它工作流,直到此工作流完成。

工作流程屬性

工作流資料夾

Adobe建議您在專屬資料夾中建立工作流程。

如果工作流影響整個平台(例如清理流程),您可以考慮在內置​Technical Workflows​資料夾中添加子資料夾。

工作流程命名

由於若未以預期方式執行,可讓工作流程更容易找到並疑難排解,Adobe建議您為工作流程指定適當的名稱和標籤:填寫工作流程的說明欄位,彙總要執行的程式,讓運算子輕鬆瞭解。

如果工作流是涉及多個工作流的流程的一部分,則在輸入標籤時可以明確;使用數字是排序工作流程的絕佳方式(依標籤)。

例如:

  • 001 —— 導入——導入收件人
  • 002 —— 導入——導入銷售
  • 003 —— 導入——導入銷售詳細資訊
  • 010 —— 匯出——匯出傳送記錄檔
  • 011 —— 匯出——匯出追蹤記錄檔

工作流程嚴重性

您可以在工作流屬性中配置工作流的嚴重性,位於​Execution​頁籤中:

  • 正常
  • 製作
  • 重要

在建立工作流時提供此資訊將有助於您瞭解配置的流程的嚴重性。

此選項對促銷活動工作流程以外的工作流程沒有任何功能影響。

具有較高嚴重性的促銷活動工作流程(作為促銷活動/作業的一部分建立的工作流程)會以優先順序執行,以防促銷活動有許多應同時執行的程式。 根據NmsOperation_LimitConcurrency選項,在促銷活動中,預設只能同時執行10個進程。 例如,如果促銷活動包含25個工作流程,則嚴重性較高的工作流程將會在10個流程的第一個池中執行。

工作流監控

您所有在生產環境上執行的排程工作流程都應受到監控,以便在發生錯誤時收到警告。

在工作流屬性中,選擇預設​Workflow supervisors​或自定義組的主管組。 請確定至少有一個運算子屬於此群組,並設定電子郵件。

開始建立工作流之前,請記得定義工作流主管。 如果發生錯誤,將會以電子郵件通知他們。 有關詳細資訊,請參閱管理錯誤

定期檢查​Monitoring​範圍,以檢視作用中工作流程的整體狀態。 有關詳細資訊,請參閱實例監督

Workflow HeatMap可讓Adobe Campaign平台管理員監控執行個體的負載情況,並據以規劃工作流程。 有關詳細資訊,請參閱工作流監控

使用活動

注意

您可以複製和貼上相同工作流程中的活動。 不過,我們不建議跨不同的工作流程複製貼上活動。 某些附加至活動(例如「傳送」和「排程器」)的設定,在執行目標工作流程時可能會導致衝突和錯誤。 我們建議您改為​複製​工作流程。 如需詳細資訊,請參閱複製工作流程

活動的名稱

在開發工作流程時,所有活動都會有名稱,所有Adobe Campaign物件也會有名稱。 當工具產生名稱時,我們建議您在設定名稱時,以明確的名稱來重新命名該名稱。 稍後執行該操作的風險在於,它可能會使用另一個先前活動的名稱中斷使用活動的工作流。 因此,更新名字將是一項困難的工作。

活動名稱可在​Advanced​標籤中找到。 請勿將其命名為​queryquery1query11,但請為其指定明確的名稱,例如​querySubscribedRecipients。 此名稱將顯示在日誌中,如果適用於SQL日誌,則有助於在配置工作流時對其進行調試。

第一個和最後一個活動

  • 始終以​Start​活動或​Scheduler​活動啟動工作流。 相關時,您也可以使用​External signal​活動。

  • 建立工作流程時,每個分支僅使用一個​Scheduler​活動。 如果工作流程的同一分支有多個排程器(相互連結),則要執行的任務數量將呈指數倍增,這將使得資料庫大幅超載。此規則也適用於具有​Scheduling & History​標籤的所有活動。 進一步瞭解計畫

  • 對每個工作流程使用​End​活動。 這可讓Adobe Campaign釋放用於工作流程中計算的暫存空間。 有關詳情,請參閱:開始和結束

活動中的Javascript

初始化工作流程活動時,您可能想要新增JavaScript。 這可在活動的​Advanced​標籤中完成。

為了更輕鬆地找出工作流程,建議您在活動標籤的開始和結束處使用雙破折號,如下所示:—我的標籤—。

信號

大部分時候,您都不會知道信號從何處呼叫。 為避免此問題,請使用信號活動​Advanced​標籤中的​Comment​欄位記錄該活動的信號的預期來源。

工作流程更新

不應直接更新生產工作流程。 除非此程式包含使用範本工作流程建立促銷活動,否則應先在開發環境上測試程式。 在進行此驗證後,可以在生產環境中部署和啟動工作流程。

在開發或測試環境中執行所有測試,而不是在生產環境中執行。 在這種情況下,無法確保效能。

封存的工作流程可以保存在開發或測試平台上,位於封存的檔案夾中,但生產環境應盡可能保持乾淨。 如果舊工作流程處於非活動狀態,則應從生產環境中移除舊工作流程。

本頁內容

Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free