2010-11-09 127 views
0

我有一個工作的入站電子郵件處理程序。不過,現在我擔心併發問題,當用戶同時發送2封電子郵件給同一個對象時。 (我有一份商業文件表格和一份發送給salesforce的技術文件表格。)除了公司名稱(他們從其他人直接發送到salesforce)之外,它們包含不同的內容。Salesforce Apex併發性建議

由於我在最後插入自定義對象,所以我擔心併發問題。這會發生嗎?我的入站電子郵件處理程序爲同一個公司創建2個自定義對象,並且只填寫了一半的信息。

如果是這樣,我該如何防止發生併發問題? 當前想法: - 立即使用關聯的帳戶而不是最後查詢custom_object。如果custom_object不存在,請創建一個。

乾杯,

回答

3

傳統意義上的 「併發」,很少在平臺上的問題。每個入境電子郵件都將在平臺上創建一個單獨的流程(處理程序)並獨立運行。你有幾個選項來處理你的多部分電子郵件方案但如果你正在尋找把它們混合起來:

  1. 可調度的Apex將允許您定期(每天,每週,等等)檢查您現有的賬戶兩個自定義對象的存在,然後使用標準合併將它們組合在一起。缺點是用戶可能會看到兩個對象,直到您的流程有時間合併它們。把它想象成一個「垃圾收集器」或「清潔過程」類型的模型。
  2. 您可以使用一個入站電子郵件類型作爲「主要」表單,然後使用異步方法處理另一個(例如tech doc)。你會有機會讓他們按照正確的順序進行處理,但是不能保證。
  3. 您的方式(查詢優先)也是完全正常的,但同樣,您的查詢在插入對象後可能不會「捕捉」對象,如果沒有,您將完全忽略它。

在你的鞋子裏,我可能會做2的組合,然後3來清理任何你想念的東西。

+0

我實際上會查看我是否可以讓他們填寫Google表單,然後彙總表單並僅發送1封電子郵件。但是,如果這不起作用,這將是我走的路。 – Tyug 2010-11-10 02:58:02

+0

使用3(做了upsert),然後用1做每日檢查來合併對象。感謝您的建議! – Tyug 2010-11-11 14:32:43