Frage

Ich habe einen eingehenden E-Mails Handler, arbeiten wird. Aber jetzt bin ich über Concurrency Probleme besorgt, wenn ein Benutzer für das gleiche Objekt 2 E-Mails zur gleichen Zeit sendet. (Ich habe ein Geschäftsdokument Form, und ein technisches Dokument, Form, die Salesforce gesendet wird.) Sie verschiedene Dinge enthalten, mit Ausnahme des Firmennamens (Sie bekommen von jemandem geschickt sonst direkt auf Salesforce).

Da ich am Ende einen Einsatz meiner benutzerdefinierten Objekt mache, bin ich über Concurrency Probleme besorgt. Wird das jemals geschehen? Meine eingehende E-Mails Handler 2 benutzerdefinierte Objekte für die gleiche Firma und beide Füllung nur in der Hälfte der Informationen.

Wenn ja, wie kann ich ein Concurrency Problem nicht passiert verhindern? Aktuelle Ideen: - Führen Sie eine Abfrage für custom_object mit dem zugehörigen Konto sofort und nicht am Ende. Wenn die custom_object nicht existiert, erstellen.

Cheers,

Kuen

War es hilfreich?

Lösung

„Concurrency“ im traditionellen Sinne, ist selten ein Problem auf der Plattform. Jeder Ihrer in-bound E-Mails wird über einen separaten Prozess (Handler) auf der Plattform schaffen und arbeiten unabhängig voneinander. Sie haben ein paar Optionen mit mehrteiligen E-Mail-Szenario zu behandeln, obwohl, wenn Sie suchen, sie zu kombinieren:

  1. planbare Apex ermöglicht es Ihnen, regelmäßig (täglich, wöchentlich, was auch immer) überprüfen Sie Ihre bestehenden Konten für die Existenz von zwei benutzerdefinierten Objekten, dann verwenden Sie einen Standard kombinierte sie zusammen zu bringen. Der Nachteil ist, die Benutzer beiden Objekte sehen können, bis Ihr Prozess Zeit hat, um sie zu verschmelzen. Betrachten Sie es als ‚Garbage Collector‘ oder ‚Reinigungsprozess‘ Modelltypen.
  2. Sie können mit einem eingehenden E-Typ als ‚Haupt‘ Form, dann die anderen Prozess (sagt sie, der Tech-doc) in einem asynchronen Verfahren. Sie werden am Ihre Chancen, sie in der richtigen Reihenfolge verarbeiten zu müssen, aber es gibt keine Garantie.
  3. Ihr Weg (Abfrage zuerst) ist auch völlig in Ordnung, wenn auch wieder, Ihre Anfrage kann nicht ‚fangen‘ das Objekt nach seiner eingeführt worden ist, und wenn nicht, werden Sie es ganz verpassen.

In den Schuhen, würde ich wahrscheinlich eine Kombination von 2, tun und dann 3 aufzuräumen jede Sie vermissen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top