0

動作している受信メールハンドラーがあります。ただし、現在、ユーザーが同じオブジェクトに対して同時に2通のメールを送信する場合の同時実行性の問題が心配です。(私はビジネスドキュメントフォームとセールスフォースに送信される技術ドキュメントフォームを持っています。)会社名(他の誰かから直接セールスフォースに送信される)を除いて、それらにはさまざまなものが含まれています。

最後にカスタムオブジェクトの挿入を行っているので、並行性の問題が心配です。これは起こりますか?私の受信メールハンドラーは、同じ会社の2つのカスタムオブジェクトを作成し、両方とも情報の半分だけを入力します。

もしそうなら、どうすれば並行性の問題が発生するのを防ぐことができますか?現在のアイデア:-custom_objectのクエリを、最後ではなく、関連付けられたアカウントですぐに実行します。custom_objectが存在しない場合は、作成します。

乾杯、

クエン

4

1 に答える 1

3

従来の意味での「同時実行性」がプラットフォーム上で問題になることはめったにありません。受信メールはそれぞれ、プラットフォーム上に個別のプロセス (ハンドラー) を作成し、独立して動作します。複数の部分からなる電子メール シナリオに対処するためのオプションがいくつかありますが、これらを組み合わせる場合は、次のようにします。

  1. スケジュール可能な Apex を使用すると、定期的に (毎日、毎週など)、既存のアカウントをチェックして 2 つのカスタム オブジェクトが存在するかどうかを確認し、標準のマージを使用してそれらをまとめることができます。欠点は、プロセスがそれらをマージする時間が得られるまで、ユーザーに両方のオブジェクトが表示される可能性があることです。「ガベージ コレクター」または「クリーニング プロセス」タイプのモデルと考えてください。
  2. 1 つのインバウンド電子メール タイプを「メイン」フォームとして使用し、もう 1 つのタイプ (技術ドキュメントなど) を非同期メソッドで処理できます。それらが正しい順序で処理される可能性が高くなりますが、保証はありません。
  3. あなたの方法(最初にクエリを実行する)も完全に問題ありませんが、クエリはオブジェクトが挿入された後にオブジェクトを「キャッチ」しない可能性があり、そうでない場合は完全に見逃してしまいます。

あなたの場合、私はおそらく 2 つを組み合わせて実行し、次に 3 つを組み合わせて、見逃したものをクリーンアップします。

于 2010-11-09T22:28:06.570 に答える