Dieser Text wurde mit dem automatisierten Übersetzungssystem von Salesforce übersetzt. Nehmen Sie an unserer Umfrage teil, um Feedback zu diesem Inhalt zu geben und uns mitzuteilen, was Sie als Nächstes sehen möchten.
Note
Leitfadenübersicht
Dieser Leitfaden hilft Ihnen, den richtigen Ansatz für Ihre asynchronen Verarbeitungsanforderungen auf der Salesforce Platform zu bewerten. Es wird jeder Ansatz erläutert und es werden die Stärken und Einschränkungen der einzelnen Ansätze erläutert. Die meisten Ansätze sind auf eine Produktfunktion abgestimmt, einige Ansätze verwenden jedoch mehrere Funktionen in Abstimmung. Der Leitfaden enthält Anwendungsfälle, in denen hervorgehoben wird, wann die einzelnen Ansätze verwendet werden sollten.
Die asynchrone Verarbeitung bietet zwei wesentliche Vorteile für Ihre Architektur. Erstens wird die Skalierbarkeit erhöht, da für asynchrone Prozesse höhere Obergrenzen gelten. Zweitens werden asynchrone Anforderungen in ihren eigenen Threads ausgeführt, sodass Benutzer andere Arbeiten ausführen können, während die asynchronen Aufgaben im Hintergrund ausgeführt werden.
Beachten Sie, dass sich dieser Leitfaden ausschließlich auf die Auswahl einer asynchronen Verarbeitungstechnologie in Salesforce Platform konzentriert. Weitere Ressourcen zur Unterstützung Ihres Entscheidungsprozesses sind im Abschnitt "Ressourcen" aufgeführt.
Produkte im Geltungsbereich dieses Handbuchs
| Bei der Salesforce Lightning Platform handelt es sich um eine umfassende AI-gestützte Plattform, die Mitarbeiter, autonome AI-Agenten, Unternehmensdaten und Anwendungen in einem einzigen, vertrauenswürdigen System zusammenführt, um die Produktivität und die Kundenerfahrung zu steigern. Durch die Verbindung von Customer 360-Anwendungen, Data Cloud und Slack für eine durchgängige Automatisierung kann ein "Agentenunternehmen" erstellt werden. |
In diesem Dokument werden keine Technologien in anderen Ökosystemen wie MuleSoft, Informatica, Commerce Cloud, Tableau und Marketing Cloud behandelt.
Takeaways
- Vergewissern Sie sich vor der Verwendung der asynchronen Verarbeitung, dass Ihre Anwendungsfälle dem Muster entsprechen. Asynchrone Muster weisen kein SLA auf, unterliegen mehreren Reglermechanismen, können Kapazitätsobergrenzen basierend auf Lizenzen definieren und aufgrund der begrenzten Beschaffenheit der Ressourcen, die der asynchronen Infrastruktur innerhalb der Salesforce Platform zugewiesen sind, zu Verarbeitungsverzögerungen führen. Beachten Sie diese Einschränkungen, wenn Sie die asynchrone Verarbeitung in Szenarien verwenden, in denen ein Benutzer eine Antwort vom System benötigt, bevor er mit seiner Arbeit fortfahren kann.
- Die asynchrone Verarbeitung mit Salesforce ist keine Lösung für grenzenlose Skalierungsanforderungen. Die Salesforce Platform kann nicht unbegrenzt skaliert werden und asynchrone Muster unterliegen Einschränkungen. Bei der asynchronen Verarbeitung werden Threads verwendet, die die Kontextinformationen enthalten, die eine CPU zum Ausführen eines Streams von Anweisungen benötigt. Threads können parallel ausgeführt werden. Die Anzahl der verfügbaren Threads in einer CPU ist begrenzt. Daher verfügt die Plattform über Mechanismen, um ihre verfügbaren Threads so effizient wie möglich zu verwenden. Der Flow-Kontrollmechanismus der Plattform verhindert, dass Organisationen zu viele Threads verwenden und sich negativ auf andere Organisationen auswirken. Der Algorithmus für die faire Nutzung der Plattform steuert auch die Anzahl der Threads, die in einer Organisation für jeden bestimmten Nachrichtentyp verfügbar sind.
- Berücksichtigen Sie Ereignisse, die zu extremen Belastungen führen können. Stellen Sie beim Entwerfen asynchroner Prozesse sicher, dass sie Arbeitslastspitzen und -lupen vorhersehbar verwalten können. Überlegen Sie, wie Ihre Implementierung mit unerwarteten Ereignissen wie Stromausfällen und Design-Sicherungen umgeht, die Datenverlust oder Funktionsverlust minimieren.
Produktvergleich
In dieser Tabelle sind die Tools aufgeführt, die für die asynchrone Verarbeitung mit Salesforce verfügbar sind. In dieser Tabelle finden Sie Informationen zu den wichtigsten Merkmalen der einzelnen Tools während Ihres Entscheidungsprozesses. Unter Anwendungsfälle und Entscheidungspunkte finden Sie Hilfe bei der Auswahl der richtigen Tools für Ihre Architektur.
| Ansatz | Beschreibung | Erforderliche Fertigkeiten | Lizenzen und Obergrenzen |
|---|---|---|---|
| Queueable Apex | Wird für Prozesse verwendet, die langfristige Datenbankvorgänge oder Callouts für externe Webservices beinhalten. Der warteschlangenfähige Apex bietet Funktionen wie Auftrags-IDs, Unterstützung für nicht primitive Typen und Auftragsverkettung. | Pro-Code | Die Anzahl der Lizenzen kann die Obergrenzen erhöhen. |
| Batch Apex | Erstellen Sie komplexe, langfristige Prozesse, die Millionen von Datensätzen umfassen, indem Sie Ihren Datensatz aufteilen und in überschaubare Blöcke verarbeiten. | Pro-Code | Die Anzahl der Lizenzen kann die Obergrenzen erhöhen. |
| Geplantes Apex | Führen Sie Apex zu einem geplanten Zeitpunkt aus, der durch einen Cron-Ausdruck definiert ist. Obwohl es sich bei der Planung von Apex über den Ausdruck cron um einen asynchronen Prozess handelt, wird der zugrunde liegende Code synchron ausgeführt, wenn der Auftrag gestartet wird. | Pro-Code | Die Anzahl der Lizenzen kann die Obergrenzen erhöhen. |
| Apex-Fortsetzungs-Callouts | Führen Sie Callouts aus Apex-Methoden aus, die in einem synchronen Transaktionskontext ausgeführt werden. | Pro-Code | Nein |
| Asynchroner Pfad (durch Datensätze ausgelöste Flows) | Führen Sie einen Vorgang aus, den Sie selbst ausführen möchten. Vermeiden Sie gemischte DML-Fehler, die auftreten, wenn Sie einen Wert in einem verwandten Datensatz aktualisieren, der nicht Teil des Datensatzes ist, der einen Flow ausgelöst hat. | Low-Code | Anzahl und Typ der Lizenzen können die Obergrenzen erhöhen. |
| Geplanter Pfad (nach Commit-Flows) | Ausführen zu einem dynamisch geplanten Zeitpunkt nach einem auslösenden Ereignis, beispielsweise wenn ein Datensatz erstellt, aktualisiert oder gelöscht wird. | Low-Code | Anzahl und Typ der Lizenzen können die Obergrenzen erhöhen. |
| Geplante Flows | Führen Sie einen Flow im Hintergrund zu einer angegebenen Zeit und mit wiederholter Häufigkeit (täglich, wöchentlich oder einmal) aus, um Aktionen für einen Datensatzbatch auszuführen. | Low-Code | Anzahl und Typ der Lizenzen können die Obergrenzen erhöhen. |
| Plattformereignisauslöser | Koppeln Sie Salesforce lose mit externen Systemen und kommunizieren Sie zwischen asynchronen Komponenten innerhalb der Salesforce Platform. | Low-Code + Pro-Code | Für Anwendungsfälle von Plattformereignissen mit hohem Volumen ist eine Add-On-Lizenz erforderlich |
| Datenerfassung ändern | Erfassen und verarbeiten Sie Änderungsereignisse asynchron, nachdem die Datenbanktransaktion übernommen wurde. | Pro-Code | Für die Skalierung oberhalb der Basiszuteilung ist eine Add-On-Lizenz erforderlich. |
| Bulk API | Fügen Sie viele Datensätze asynchron ein, aktualisieren, aktualisieren, einfügen, abfragen oder löschen Sie sie und verarbeiten Sie die Ergebnisse später. | Pro-Code | Es gibt Obergrenzen. |
| Lightning Aktionen | Ermöglichen Sie es Lightning-Seiten, mit dem Server zu interagieren, ohne Benutzer zu zwingen, die Seite vollständig zu aktualisieren. | Low-Code | Nein |
Entscheidungspunkte
Diese Tabelle enthält eine Übersicht der Punkte, die Sie bei der Entscheidung für das zu verwendende asynchrone Tool berücksichtigen sollten.
| Erforderliche Fertigkeiten | Einige der in diesem Handbuch beschriebenen Tools erfordern Code, während andere deklarativ konfiguriert werden können. Überlegen Sie sich bei Ihren Optionen, über welche Fertigkeiten Ihre Teammitglieder verfügen. Beachten Sie, dass Sie Ihre Lösungen in Zukunft möglicherweise ändern müssen, selbst wenn Entwickler für Ihre erste Implementierung verfügbar sind (beispielsweise über einen Implementierungspartner). Wenn Ihrem Wartungsteam Entwickler fehlen, kann eine Low-Code-Option besser passen. |
| Typ der erzwungenen Plattformobergrenzen | Legen Sie fest, welche Obergrenzen für die Ausführung gelten. Überlegen Sie beim Entwerfen Ihrer Lösungen genau, wie das Volumen und die Häufigkeit von Transaktionen auf die Obergrenzen für den gewählten Ansatz pro Tag angerechnet werden. Berechnen Sie die Anzahl der Hinrichtungen, die jeden Tag erfolgen. Stellen Sie sicher, dass die berechneten Werte innerhalb der mit Ihren ausgewählten Tools verknüpften Obergrenzen liegen. |
| Latenz | Bestimmen Sie, wie schnell die Verarbeitungsergebnisse auf der Plattform verfügbar sein sollen. Bei einigen Ansätzen sind die Änderungen nahezu sofort, bei anderen hingegen in Minuten oder Stunden. |
Anwendungsfälle
Wenn Sie ein Tool für die asynchrone Verarbeitung auswählen, sollten Sie zunächst die Anforderungen und verfügbaren Ressourcen Ihrer Organisation auswerten. Ihr Ziel ist es, das oder die Tools auszuwählen, die die Implementierungs- und Wartungskosten minimieren, aber dennoch die Skalierbarkeit gewährleisten und die Wahrscheinlichkeit von Obergrenzenverstößen minimieren. Dieses Ziel hängt von den zuvor beschriebenen technischen Überlegungen und der Zusammensetzung Ihres Teams ab.
Stellen Sie sich einen asynchronen Bestellprozess in Salesforce vor. Wenn ein Auftrag gespeichert wird, wird eine Meldung an ein externes Lagerverwaltungssystem mit speziellen Anweisungen zum Verpacken und Versenden eines Artikels ausgelöst. Der Benutzer, der den Auftrag erteilt, benötigt keine sofortige Antwort vom Lagerverwaltungssystem, sodass die Anforderung asynchron gesendet werden kann. Durch die asynchrone Verarbeitung kann der Benutzer seine Arbeit fortsetzen, ohne auf eine Antwort warten zu müssen.
In diesem Anwendungsfall können Sie die Implementierung mit Apex in Erwägung ziehen. Dieser Ansatz funktioniert nur, wenn Sie Apex-Entwickler in Ihrem Team haben, die Ihre Pro-Code-Lösung verwalten können. Andernfalls ist ein deklarativer Ansatz sinnvoller. Beachten Sie außerdem, dass für verschiedene Tools unterschiedliche Obergrenzen gelten.
In dieser Tabelle werden allgemeine Anwendungsfälle in der Spalte ganz links gefolgt von einer Beschreibung aufgeführt. In der Spalte Erste Wahl finden Sie den typischsten Ansatz, der verwendet wird, um einen solchen Anwendungsfall zu erfüllen, sowie die Gründe für den Ansatz Erste Wahl. Verwenden Sie dies als Ausgangspunkt für Ihre Analyse – der Ansatz der ersten Wahl weist möglicherweise Einschränkungen auf, die für Ihren Anwendungsfall nicht funktionieren.
| Anwendungsfall | Beschreibung | Ansatz der ersten Wahl | Begründung |
|---|---|---|---|
| Hochleistungsfähige Batchverarbeitung | Jede Automatisierung, die Tausende oder Millionen von Datensätzen effizient verarbeiten muss | Batch-Apex | Batch Apex bietet umfangreiche APIs für die Anbindung an die Plattform und für die Rohgeschwindigkeit. |
| Datenbereinigungsauftrag | Ein Auftrag, der routinemäßig oder nach Bedarf ausgeführt wird und Daten bereinigt. Beispiele hierfür sind die Duplizierung, die Adressüberprüfung oder die Datenkonsolidierung. | Batch-Apex | Batch Apex bietet umfangreiche APIs für die Anbindung an die Plattform und für die Rohgeschwindigkeit. |
| Nächtlicher Rollup-Auftrag | Auftrag, der Rollup-Daten am Ende eines Geschäftstags berechnet. | Batch-Apex | Batch Apex bietet umfangreiche APIs für die Anbindung an die Plattform und für die Rohgeschwindigkeit. |
| Durch Datensatz ausgelöste Logik | Führen Sie Logik als Reaktion auf eine Datensatzaktualisierung aus. | Variiert | Lesen Sie unseren Leitfaden zur begleitenden Entscheidung, Record Triggered Events Automation. Sie enthält eine Entscheidungsstruktur für asynchrone Anwendungsfälle, einschließlich warteschlangenfähigen Apex, Batch Apex, geplanten Apex, geplanten Flows, asynchronen Pfad-Flows und Datenerfassung ändern. |
| Eskadierende Aktualisierungen durch ein Objektdiagramm | Ermöglicht es einem Benutzer, die Speicheraktion schnell abzuschließen, indem kaskadierende Aktualisierungen an anderen Objekten zurückgestellt werden, um sie asynchron auszuführen. | Warteschlangenfähiger Apex | Der warteschlangenfähige Apex verfügt über leistungsstarke Verkettungsfunktionen, mit denen eine Aktualisierungskette durch Logik in eine Reihe asynchroner Transaktionen unterteilt werden kann. |
| Datensatzspezifische geplante Verarbeitung | Automatisierung zu einem zukünftigen dynamischen Datum, das für den Datensatz spezifisch ist (z. B. 3 Tage vor einem Schlusstermin). | Flow mit einem geplanten Pfad | Geplante Pfade bieten Flow eine einzigartige Stärke, da die Plattform automatisch die Planung, Stornierung und Neuplanung dieser Pfade übernimmt, wenn sich die Daten des Datensatzes ändern. |
| Mehrere langsame externe Services parallel aufrufen | Während einer synchronen Ausführung werden mehrere externe Services parallel aufgerufen, um die Gesamtausführungszeit zu optimieren. | Callouts für Apex-Fortsetzungen | Wenn Sie zulassen, dass mehrere langsam ausgeführte Callouts parallel ausgeführt werden, wird die Gesamtzeit zum Abschließen der Arbeit minimiert. |
| Datenmigration von Datensätzen aus einem externen System | Verschieben Sie große Datensatzmengen aus einem externen System in die Salesforce Platform. Entweder einmalig oder regelmäßig geplant. | Bulk- API | Dies ist der effizienteste und grenzenschonendste Ansatz für die Datenmigration. |
| Ausführen zusätzlicher Logik auf einem externen System | Feuer-und-Vergessen-Muster, bei dem ein externes System über ein Ereignis auf der Plattform benachrichtigt wird und dieses System dann das Ereignis asynchron verarbeiten kann. | Plattformereignisse oder Datenerfassung ändern | Ein Pub-Sub-Modell funktioniert hier am besten und ermöglicht es dem externen System, das Ereignis zu verarbeiten, wenn es bereit ist. Weitere Details zu diesem Muster finden Sie unter Ereignisgesteuerte Architektur. |
Die Tabelle "Anwendungsfälle" ist ein Leitfaden für den am besten geeigneten Ansatz für jeden Anwendungsfall. Sie müssen jedoch überprüfen, ob die First Choice-Technologie den spezifischen Anforderungen Ihres Anwendungsfalls entspricht. Legen Sie insbesondere fest, ob der gewählte Ansatz die Obergrenzen für Ihre Organisation einhalten kann.
Sobald Sie einen Kandidatenansatz für Ihren Anwendungsfall identifiziert haben, kann der Leitfaden zu den Grundlagen der asynchronen Verarbeitung die Lösung vollständig überprüfen.
Ressourcen
Diese zusätzlichen Ressourcen können Ihnen bei der Entscheidung helfen:
- Tauchen Sie tief in jede der asynchronen Plattformtechnologien ein: Grundlagen der asynchronen Verarbeitung
- Auswahl zwischen Apex und Flow für Datensatzauslöser: Automatisierung von durch Datensätze ausgelösten Ereignissen
- Informationen zu asynchronen Integrationsmustern: Ereignisgesteuerte Architektur
10 minute read
