Zum Inhalt springen

Hintergrunddienste im Jitterbit App Builder

Übersicht

Die App Builder-Funktion Hintergrunddienste ermöglicht es dem App Builder, lang andauernde Ereignisse in einer gedrosselten Hintergrundwarteschlange auszuführen. Der Dienst selbst wird von der App Builder Webanwendung in IIS gehostet. Solange die Website läuft, läuft auch der Hintergrunddienst. Es ist keine zusätzliche Installation oder Konfiguration erforderlich.

Am App Builder Hintergrunddienst sind zwei Komponenten beteiligt:

Hintergrundwarteschlange

Entwickler erstellen häufig ein Ereignis, das mehrere Aktionen ausführt, möglicherweise über mehrere Datenquellen hinweg, oder sogar REST-Aufrufe an externe Systeme. Mit der Hintergrundwarteschlange kann der Entwickler festlegen, dass das Ereignis im Hintergrund statt im Vordergrund ausgeführt werden soll. Dies bietet einige Vorteile:

  • Wenn Sie auf eine Schaltfläche klicken, um ein Ereignis auszuführen, wird die Steuerung sofort an den Client zurückgegeben. Der Client kann seine Arbeit fortsetzen, während der Job auf dem Host weiterläuft. Die Hintergrundwarteschlange spart Ressourcen. Indem der Entwickler Ereignisse in den Hintergrund stellt, die sonst Ressourcen binden würden, ermöglicht er dem App Builder, die Ausführung dieser Ereignisse zu drosseln. Mit steigender Systemlast reduziert sich die Parallelität der Jobwarteschlange. Dadurch kann der Webserver mit mehr Threads arbeiten und mehr CPU-Zugriff haben. Wenn sich beispielsweise 100 Personen auf der Website anmelden und auf eine Schaltfläche klicken, die ein Ereignis ausführt, müsste IIS 100 gleichzeitige Ausführungen dieses Ereignisses verarbeiten. Durch die Übermittlung des Ereignisses an die Jobwarteschlange können wir die Parallelität reduzieren und nur eine kleine Anzahl gleichzeitig ausführen, wodurch Ressourcen für die Website freigesetzt werden. Die Hintergrundwarteschlange überwacht Ereignisse und speichert den Verlauf. Wir beabsichtigen, diese Funktionalität künftig auf alle Ereignisse auszuweiten. Wenn Sie vorerst ein Protokoll des Ausführungsverlaufs eines Ereignisses führen möchten, einschließlich:

    • Wer hat die Veranstaltung durchgeführt?
    • Wann wurde es ausgeführt?
    • Wie lange hat der Lauf gedauert
    • War es erfolgreich (wenn nicht, welche Fehler sind aufgetreten)

Diese Informationen sind im Abschnitt Überwachung der IDE verfügbar. Auf der Startseite finden Sie eine Liste der laufenden Dienste und eine Liste der laufenden Zeitpläne oder Ereignisse.

Notiz

Der Hintergrunddienst bereinigt die Protokolltabellen täglich. Er löscht alle erfolgreichen Ereignisse, die älter als 7 Tage sind, und alle fehlgeschlagenen Ereignisse, die älter als 30 Tage sind.

Um festzulegen, dass ein Ereignis im Hintergrund ausgeführt werden soll, sucht der Entwickler das Ereignis, doppelklickt darauf, bearbeitet es und wählt den Ausführungstyp „Jetzt starten (Hintergrund)“ aus. Ab diesem Zeitpunkt stellt App Builder das Ereignis zur Ausführung in die Warteschlange, sobald ein Benutzer es ausführt.

Wenn Ihr Ereignis Validierungsregeln enthält und diese einen Fehler zurückgeben, gibt App Builder die Ergebnisse zusammen mit den Validierungsmeldungen sofort an den Benutzer zurück und bricht die Ausführung des Ereignisses in der Warteschlange ab. Warnung: Validierungen werden bei der Ausführung des Ereignisses im Hintergrund nicht unterstützt.

Erwägen Sie gegebenenfalls eine Änderung der Erfolgsmeldung für das Ereignis, sodass dem Endbenutzer mitgeteilt wird, dass der Operation im Hintergrund ausgeführt wird.

Die App Builder Job-Warteschlange ruht unbegrenzt und nutzt nur minimale Ressourcen, bis ein Ereignis in die Warteschlange gestellt wird. Sie fragt nicht nach auszuführenden Jobs. Stattdessen nutzt sie das taskbasierte asynchrone Muster von Microsoft, um sicherzustellen, dass die Systemressourcen voll ausgelastet sind.

Planer

App Builder unterstützt die Planung der Ausführung von Ereignissen, anstatt diese manuell ausführen zu müssen. Der Scheduler läuft wie die Job-Warteschlange im Hintergrunddienst, solange die Webanwendung läuft. App Builder unterstützt derzeit einen Ausführungsmodus für geplante Ereignisse, die sogenannte Mehrzeilenausführung. Dies unterscheidet sich von der Ausführung eines Ereignisses per Schaltflächenklick. Wenn ein Benutzer ein Ereignis für ein Geschäftsobjekt ausführt, wird es für eine einzelne Zeile ausgeführt. Wenn der Scheduler ein Ereignis ausführt, wird es für das gesamte Geschäftsobjekt ausgeführt. Das bedeutet, dass die Warteschlange jede Zeile des Geschäftsobjekts durchläuft und das geplante Ereignis für diese Zeile ausführt. Dies geschieht, indem jede Zeile zur Ausführung durch die Job-Warteschlange in die Warteschlange gestellt wird.

Da die geplanten Ereignisse zur Ausführung in die Auftragswarteschlange gestellt werden, kann App Builder die Leistungsvorteile nutzen, die sich durch die drosselung der Ausführung dieser potenziell großen Datensätze ergeben. Dies bietet auch die gleiche Transparenz für geplante Ereignisse hinsichtlich Überwachung und Protokollierung. Für jede vom geplanten Ereignis ausgeführte Zeile wird ein Eintrag im Protokoll erstellt. Die Primärschlüsselinformationen für jede Zeile werden in das Protokoll aufgenommen, um die Fehlersuche und -behebung zu erleichtern.

Um die Ausführung eines Ereignisses zu planen, suchen Sie das Ereignis, doppelklicken Sie darauf und legen Sie den Ausführungstyp auf Über Zeitplan starten (Hintergrund) fest. Dadurch kann das Ereignis einem Zeitplan zugeordnet werden.

Um einen Zeitplan zu erstellen, gehen Sie in der IDE zum Abschnitt Überwachung. Klicken Sie auf Zeitpläne und erstellen Sie einen neuen Zeitplan.

Die folgenden Zeitplantypen werden vom App Builder unterstützt:

  • Einmalige Ausführung - Wählen Sie einen Tag und eine Uhrzeit in der Zukunft für die Ausführung des Ereignisses. App Builder führt das Ereignis zum geplanten Zeitpunkt aus und deaktiviert anschließend den Zeitplan.
  • Periodische Ausführung - Führen Sie das Ereignis alle X Sekunden/Minuten/Stunden aus.
  • Tägliche Ausführung - Das Ereignis wird alle X Tage zu einer bestimmten Zeit ausgeführt. Die Ausführung kann täglich, jeden dritten Tag, alle sieben Tage usw. konfiguriert werden.
  • Wöchentliche Ausführung - Das Ereignis wird alle X Wochen zu einer bestimmten Uhrzeit an einem bestimmten Wochentag ausgeführt. In diesem Zeitplan kann der Entwickler bestimmte Wochentage für die Ausführung des Ereignisses auswählen. Beispielsweise jeden zweiten Sonntag und Mittwoch um 19:00 Uhr.
  • Ausgelöste Ausführung - Führen Sie das Ereignis als Reaktion auf ein Signal aus, z. B. die Anmeldung eines Benutzers beim System.

Um ein Ereignis zu einem Zeitplan hinzuzufügen, rufen Sie die Seite „Zeitpläne“ auf und klicken Sie auf das Symbol „Ereignisse“. Fügen Sie das Ereignis dem Zeitplan hinzu und geben Sie die maximale Anzahl gleichzeitiger Ausführungen und die Benutzer-ID an, die das Ereignis ausführen soll. Wenn das Geschäftsobjekt „Ereignis“ mehrere Zeilen zurückgibt, versucht App Builder, das Ereignis für jede Zeile mit der angegebenen Anzahl gleichzeitiger Ausführungen auszuführen. Wenn das Geschäftsobjekt beispielsweise 100 Zeilen zurückgibt und die maximale Anzahl gleichzeitiger Ausführungen 3 beträgt, versucht App Builder, drei Ereignisinstanzen gleichzeitig auszuführen, bis das Ereignis 100 Mal ausgeführt wurde (einmal für jede Zeile).

Hinweis

Siehe folgenden Artikel zu Als Benutzer ausführen, wenn Sie als bestimmter Benutzer ein geplantes Ereignis durchführen möchten.

Dienstinstanzen

Auf dieser Seite kann der Benutzer den Hintergrunddienst stoppen/starten und die aktiven Dienste und laufenden Jobs überwachen.

  • Sie zeigt das Startdatum des Dienstes und die Betriebszeit an.
  • Die Schaltflächen Stopp und Start ermöglichen das Stoppen des Hintergrunddienstes.

  • Mit Stopp werden alle aktuell ausgeführten Jobs beendet und alle in der Warteschlange befindlichen Jobs abgebrochen. Außerdem werden geplante oder aufgerufene Ereignisse nicht mehr in die Warteschlange gestellt.

  • Mit Start wird der Hintergrunddienst wieder gestartet, die Aktivitätstabelle gelöscht und mit der Planung und Unterstützung von Hintergrundereignissen begonnen.
  • Die Seite aktualisiert ihren Status in der Benutzeroberfläche nicht ständig, daher gibt es eine Schaltfläche Aktualisieren. Durch Klicken auf Aktualisieren werden die neuesten Informationen zu den laufenden Dienstinstanzen und Jobs geladen, ohne dass der Benutzer den gesamten Browser aktualisieren muss.

Seite „Protokolle“

  • Zeigt Meldungen der aktuell laufenden Dienstinstanz an.
  • Verfügbar auf der Seite „Dienstinstanzen“

Abbrechen eines Jobs

Die Art und Weise, wie App Builder einen Job abbricht, hängt vom Status des Jobs und der Art des ausgeführten Jobs ab.

  • Ausstehender Status - Der Auftrag wurde erstellt und in die Warteschlange gestellt, wird aber noch nicht ausgeführt. In diesem Status bricht App Builder den Auftrag sofort ab.
  • Laufstatus - Wenn der Job ausgeführt wird, sendet App Builder eine Abbruchanforderung an den Job. Manche Vorgänge benötigen länger zum Abbruch als andere, und manche Vorgänge erlauben keine Unterbrechung. Wenn der Job einen Punkt erreicht, der einen Abbruch unterstützt, wird er abgebrochen und seine Aktivitätsinformationen werden aktualisiert.
  • Geplanter Job - Wenn es sich um einen geplanten Job handelt und er n Jobs zur Ausführung des geplanten Ereignisses erstellt hat, werden durch das Abbrechen des geplanten Jobs auch die von ihm initiierten Jobs abgebrochen. Anders ausgedrückt: Die gesamte Ausführung des Zeitplans wird abgebrochen.