Asynchrone Verarbeitung – Grundlagen
Lernziele
Nachdem Sie diese Lektion abgeschlossen haben, sind Sie in der Lage, die folgenden Aufgaben auszuführen:
- Erläutern des Unterschieds zwischen synchroner und asynchroner Verarbeitung
- Auswählen des geeigneten asynchronen Apex-Typs in verschiedenen Szenarien
Asynchrones Apex
Kurz und knackig gesagt, wird asynchrones Apex verwendet, um Prozesse zu einem späteren Zeitpunkt in einem separaten Thread auszuführen.
Schauen wir uns ein konkretes Beispiel dazu an.
Schauen wir uns ein konkretes Beispiel dazu an. Die wichtigsten Vorteile der asynchronen Verarbeitung sind:
- Die für diese Berechnungen erforderliche Zeit könnte von einer kleinen Unannehmlichkeit bis zu einer längeren Zwangspause für den Benutzer reichen.
- Dadurch kann die Plattform dank paralleler Verarbeitung mehr Aufträge erledigen.
- Asynchrone Prozesse werden in einem neuen Thread gestartet, wodurch höhere Obergrenzen für die Ausführung gelten.
Skalierbarkeit
Typ | Überblick | Übliche Szenarien |
|---|---|---|
Future-Methoden | ||
Batch-Apex | Dient zur Ausführung umfangreicher Aufträge, die die normalen Verarbeitungsgrenzen sprengen würden. | Datenbereinigung oder Archivierung von Datensätzen |
Queueable Apex | Ähnlich wie Future-Methoden, ermöglicht jedoch das Verketten weiterer Aufträge und die Verwendung komplexerer Datentypen. | |
Geplantes Apex | Sie planen die Apex-Ausführung für einen bestimmten Zeitpunkt. | Tägliche oder wöchentliche Aufgaben |
Höhere Obergrenzen
Mit Trail Together einem Dozenten folgen
Möchten Sie bei diesem Schritt einem Dozenten folgen? Die einzelnen Typen werden in Kürze detaillierter behandelt, doch hier sehen Sie einen groben Überblick.
Höhere Obergrenzen für die Ausführung
Einer der Hauptvorteile der Ausführung von asynchronem Apex sind die höheren Obergrenzen für die Ausführung. Bei der Verwendung asynchroner Aufrufe wird beispielsweise die Anzahl von SOQL-Abfragen von 100 auf 200 Abfragen verdoppelt. Die Heap-Gesamtgrößte und die maximale CPU-Zeit vergrößern sich bei asynchronen Aufrufen in ähnlichem Maß.
Möchten Sie bei diesem Schritt einem Dozenten folgen? Schauen Sie sich dieses Video an, das Teil der Reihe "Trail Together" auf Trailhead Live ist. Dies ist beispielsweise in Fällen praktisch, wenn Sie so viel Verarbeitung wie möglich innerhalb der aktuellen Transaktion erledigen möchten, diese jedoch asynchron fortsetzen möchten, sobald Sie in die Nähe der Obergrenzen kommen.
Funktionsweise der asynchronen Verarbeitung
Die Plattform nutzt ein warteschlangenbasiertes, asynchrones Verarbeitungs-Framework. Der Lebenszyklus einer Anforderung besteht aus drei Teilen:
- Die Anforderung wird in die Warteschlange gestellt. Die Plattform reiht Anforderungen zusammen mit den entsprechenden Daten für die Verarbeitung in die Warteschlange ein.
- Die in die Warteschlange eingereihte Anforderung wird persistent gespeichert. Anforderungen werden in den persistenten Speicher geschrieben, um die Wiederherstellung bei einem Fehler zu ermöglichen und Transaktionsfunktionen bereitzustellen.
- Die in die Warteschlange eingereihte Anforderung wird aus der Warteschlange entfernt und verarbeitet. Wenn die Verarbeitung fehlschlägt, sorgt die Transaktionssteuerung dafür, dass die Anforderungen nicht verloren gehen.
Jede Anforderung wird von einem Handler verarbeitet. Der Handler ist der Code, der Funktionen für einen spezifischen Anforderungstyp durchführt. Handler werden von einer begrenzten Zahl von Arbeits-Threads auf jedem der Anwendungsserver ausgeführt, die eine Instanz bilden. Die Threads fordern Arbeitsaufträge vom Warteschlangen-Framework an und starten nach deren Erhalt einen spezifischen Handler, der die Arbeit erledigt.
Ressourcenschonung
Die Priorität von asynchroner Verarbeitung ist niedriger als die von Echtzeitinteraktionen über Browser und API. Oder einfach gesagt: Das mandantenfähige System schützt sich selbst.
Ressourcen