此文字已使用 Salesforce 的自動翻譯系統進行翻譯。參閱我們的 調查以提供此內容的回饋意見,並告訴我們您接下來想要查看的內容。
Note
指南概觀
本指南將協助您評估 Salesforce 平台上非同步處理需求的正確方法。它會解釋每個方法,並詳細說明每個方法的優勢與限制。大多數方法與產品功能一致,但某些方法在協調中使用多個功能。此指南包含使用個案來醒目提示每個方法的使用時機。
非同步處理為您的結構提供兩個主要優點。首先,由於非同步程序有較高的管理員限制,因此會增加擴充性。其次,非同步要求會在自己的執行緒中執行,因此使用者可以在非同步工作在背景中執行時執行其他工作。
請注意,本指南專注於在 Salesforce Platform 內選擇非同步處理技術。其他可協助您決策流程的資源會列在「資源」區段中。
此指南範疇中的產品
| Salesforce Lightning Platform 是一個全方位、 AI 驅動的平台,可將員工、獨立 AI 工作人員、公司資料和應用程式整合到一個可靠的系統中,以提升生產力與客戶體驗。透過連接 Customer 360 應用程式、Data Cloud 和 Slack 來進行端對端自動化,以便建立「真正的企業」。 |
此文件不涵蓋其他生態系統中的技術,例如 MuleSoft、Informatica、Commerce Cloud、Tableau 和 Marketing Cloud。
接待時間
- **使用非同步處理之前,請確定您的使用個案符合模式。**非同步模式沒有 SLA、受限於多個管理員機制、可根據授權定義產能限制,且可能會因為配置給 Salesforce Platform 中非同步基礎結構的資源有限性而導致處理延遲。在使用者需要系統回應的情況下使用非同步處理時,請考量這些限制,才能繼續進行其工作。
- **使用 Salesforce 進行非同步處理並非滿足無限調整需求的解決方案。**Salesforce Platform 不會無限規模,非同步模式受到限制。非同步處理使用執行緒,其中包含 CPU 執行指示串流所需的內容資訊。討論串可以並列執行。任何 CPU 中可用的執行緒數目受到限制,因此平台已具備機制,以盡可能有效率地使用其可用的執行緒。平台的 流程控制機制可防止組織耗用太多執行緒,並對其他組織造成負面影響。平台的 公平使用演算法也控制組織針對每個特定訊息類型可用的執行緒數目。
- **會考量造成極度負載的事件。**當您設計非同步流程時,請確定流程可以預測地管理工作量高峰和閒置。請考慮您的實作如何處理非預期的事件,例如停電,以及設計可減輕資料遺失或功能遺失的安全防護。
產品比較
此表格概述使用 Salesforce 進行非同步處理的可用工具。請參閱此表格,在決策流程期間檢閱每個工具的主要特性。請參閱「使用個案」和「決策點」,以協助為您的結構選擇正確的工具。
| 方法 | 描述 | 所需技能 | 授權與限制 |
|---|---|---|---|
| 可排序的 Apex | 用於涉及長時間執行資料庫作業或外部 Web 服務呼叫的流程。Apex 提供工作識別碼、支援非原始類型和工作鏈等功能。 | 專業程式碼 | 授權數量會增加限制。 |
| 批次 Apex | 透過分割記錄集並將其處理成可管理區塊,建立複雜且長時間執行流程,其中涉及數百萬筆記錄。 | 專業程式碼 | 授權數量會增加限制。 |
| 已排程 Apex | 在由 Cron 運算式定義的排程時間執行 Apex。雖然透過 Cron 運算式排程 Apex 的動作是非同步的程序,但基本程式碼會在工作開始時同步執行。 | 專業程式碼 | 授權數量會增加限制。 |
| Apex 繼續呼叫 | 從在同步交易內容中執行的 Apex 方法執行呼叫。 | 專業程式碼 | 否 |
| 非同步路徑 (記錄觸發流程) | 執行您要在自己的時間執行的作業。請避免在您更新非觸發流程記錄相關記錄值時發生的混合 DML 錯誤。 | 低程式碼 | 授權的數量與類型可增加限制。 |
| 排程路徑 (認可流程後) | 在觸發事件後動態排程的時間執行,例如建立、更新或刪除記錄時。 | 低程式碼 | 授權的數量與類型可增加限制。 |
| 已排程流程 | 在特定時間和重複的頻率 (每日、每週或一次) 在背景中執行流程,以對記錄批次執行動作。 | 低程式碼 | 授權的數量與類型可增加限制。 |
| 平台事件觸發 | 寬鬆將 Salesforce 與外部系統配對,並在 Salesforce Platform 內非同步元件之間通訊。 | 低程式碼 + 專業程式碼 | 大量平台事件使用個案需要附加元件授權 |
| 變更資料取取 | 認可資料庫交易後,以非同步方式來捕捉和處理變更事件。 | 專業程式碼 | 需要附加元件授權,才能將比例大於基準配置。 |
| 大量 API | 以非同步方式插入、更新、更新插入、查詢或刪除許多記錄,之後再處理結果。 | 專業程式碼 | 有一些限制。 |
| Lightning 動作 | 允許 Lightning 頁面與伺服器互動,而無須強制使用者完全重新整理頁面。 | 低程式碼 | 否 |
決策點
此表格包含當您決定要使用哪個非同步工具時要考量的要點概觀。
| 所需技能 | 此指南中概述的部分工具需要程式碼,而其他工具則可以宣告的方式進行設定。當您考量您的選項時,請思考小組成員擁有的技能集。請記住,即使開發人員可用於您的初始實作 (例如透過實作合作夥伴),您可能需要在未來修改您的解決方案。如果您的維護小組缺少開發人員,低程式碼選項可能更適合。 |
| 強制執行的平台限制類型 | 決定套用至執行的 限制類型。當您設計解決方案時,請仔細思考交易量和頻率會如何計入每日所選方法的管理員限制。計算每天會發生的執行次數。請確保計算的值在與您所選工具相關聯的限制之內。 |
| 延遲 | 決定處理結果在平台中可用的速度。針對某些方法,變更將近乎立即,而對於其他方法,變更可能為分鐘或小時。 |
使用個案
當您選取用於非同步處理的工具時,請先評估您組織的需求和可用資源。您的目標是選取最小化實作與維護成本的工具,同時確保延展性並將限制違規的可能性降到最低。此目標取決於先前概述的技術考量事項,以及您小組的組成。
請考量 Salesforce 中的非同步訂購流程。儲存訂單時,會觸發外部倉庫管理系統的訊息,其中包含如何包裝和寄送項目的特殊指示。下單的使用者不需要倉庫管理系統的立即回應,因此要求可以非同步傳送。非同步處理可讓使用者繼續工作,而無須等待回應。
針對此使用個案,您可能會考慮使用 Apex 進行實作。只有在您的小組中有可維護 Pro-code 解決方案的 Apex 開發人員時,此方法才會運作。否則,陳述性方法更有意義。此外,請記住,不同工具適用的不同集合的 限制。
此表格會在最左側欄中列出常見使用個案,後面加上描述。第一個選項欄提供用來滿足此類使用個案的最典型方法,以及第一個選項方法的理由。請使用此作為分析的起點,因為「第一個選項」方法可能有不適用於您使用個案的限制。
| 使用個案 | 描述 | 第一個選項方法 | 理由 |
|---|---|---|---|
| 高效能批次處理 | 必須有效率地處理數千筆或數百萬筆記錄的自動化 | 批次 Apex | 批次 Apex 提供豐富的 API,可用於與平台的介面以及原始速度。 |
| 資料清除工作 | 定期執行或隨選執行,可清除資料的工作。範例包括消除重複、地址驗證或資料合併。 | 批次 Apex | 批次 Apex 提供豐富的 API,可用於與平台的介面以及原始速度。 |
| 夜間累計工作 | 在工作日結束時計算累計資料的工作。 | 批次 Apex | 批次 Apex 提供豐富的 API,可用於與平台的介面以及原始速度。 |
| 記錄觸發邏輯 | 執行邏輯以回應記錄更新。 | 變化 | 請參閱我們的伴侶決策指南,記錄觸發事件自動化。其中包含非同步使用個案的決策樹狀結構,包括可排列的 Apex、批次 Apex、已排程的流程、非同步路徑流程和變更資料擷取。 |
| 透過物件圖表串聯更新 | 允許使用者的儲存動作快速完成,將串聯更新延後至其他物件以非同步執行。 | 可排序的 Apex | Apex 具有強大的鏈結功能,可讓邏輯將更新鏈結分為一系列非同步交易。 |
| 記錄特定排程處理 | 在未來,記錄特定的動態日期 (例如結束日期前 3 天) 自動化。 | 含已排程路徑的 流程 | 已排程路徑為流程提供獨特的優勢,因為當記錄的資料變更時,平台會自動處理這些路徑的排程、取消和重新排程。 |
| 並列叫用多個慢速外部服務 | 在同步執行期間,會並列叫用多個外部服務,以最佳化整體執行時間。 | Apex 繼續呼叫 | 允許多個慢速執行的呼叫並行執行,可將完成工作整體時間最小化。 |
| 從外部系統移轉記錄的資料 | 從外部系統將大量記錄移至 Salesforce Platform。一次性或定期排程的流程。 | 大量 API | 這是資料移轉最有效率且易於限制的方法。 |
| 在外部系統上執行其他邏輯 | 通知平台上事件的外部系統,然後允許該系統非同步處理事件的觸發式模式。 | 平台事件或 變更資料 | 發布子模型最適用於此處,並允許外部系統在準備好時處理事件。如需此模式的詳細資料,請參閱「事件驅動結構」。 |
「使用個案」表格是每個使用個案最合適方法的指引。不過,您需要驗證 First Choice 技術是否符合您使用個案的特定需求。尤其是,判斷所選方法是否可以遵循您組織的管理員限制。
在您為使用個案找出候選方法後,非同步處理基本概念指南可協助您完整檢查解決方案。
資源
這些其他資源可協助您的決策流程:
