Hintergrunddienste im Jitterbit App Builder
Übersicht
Der App Builder Die Funktion Hintergrunddienste ermöglicht App Builder um lang andauernde Events in einer gedrosselten Hintergrundwarteschlange auszuführen. Der Dienst selbst wird von der App Builder Webanwendung in IIS. Solange die Website läuft, läuft der Hintergrunddienst. Es ist keine zusätzliche Installation oder Konfiguration erforderlich.
An der App Builder Hintergrunddienst:
Hintergrundwarteschlange
Häufig erstellt ein Entwickler ein Ereignis, das mehrere Aktionen ausführt, möglicherweise mehrere Datenquellen oder sogar REST-Aufrufe an externe Systeme umfasst. Mit der Hintergrundwarteschlange kann der Entwickler angeben, 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 Kontrolle sofort an den Client zurückgegeben. Der Client kann mit seiner Arbeit fortfahren, während der Job auf dem Host weiter ausgeführt wird.
- Die Hintergrundwarteschlange spart Ressourcen. Indem Ereignisse in den Hintergrund gestellt werden, die sonst Ressourcen binden würden, ermöglicht der Entwickler App Builder um die Ausführung dieser Ereignisse zu drosseln. Wenn die Systemlast zunimmt, verringert sich der Parallelitätsgrad der Job-Warteschlange. Dadurch kann der Webserver mit mehr Threads und mehr Zugriff auf die CPU arbeiten. Wenn sich beispielsweise 100 Personen auf der Site anmelden und auf eine Schaltfläche klicken, die ein Ereignis ausführt, müsste IIS 100 gleichzeitige Ausführungen dieses Ereignisses verarbeiten. Indem wir das Ereignis an die Job-Warteschlange senden, können wir die Parallelität reduzieren, sodass nur eine kleine Anzahl gleichzeitig ausgeführt wird, wodurch Ressourcen für die Website freigegeben werden.
-
Die Hintergrundwarteschlange überwacht Ereignisse und speichert den Verlauf. Wir beabsichtigen, diese Funktionalität in Zukunft auf alle Ereignisse auszuweiten. Wenn Sie vorerst ein Protokoll des Ausführungsverlaufs eines Ereignisses führen möchten, einschließlich:
- Wer hat das Ereignis ausgeführt
- Wann wurde es ausgeführt
- Wie lange hat die Ausführung 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 kürzt 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, muss der Entwickler das Ereignis suchen, dann auf das Ereignis doppelklicken, es bearbeiten und den Ausführungstyp Jetzt starten (Hintergrund) auswählen. Von diesem Punkt an App Builder stellt das Ereignis zur Ausführung in die Warteschlange, wenn ein Benutzer es ausführt.
Wenn Ihr Ereignis Validierungsregeln hat und diese Regeln einen Fehler zurückgeben, App Builder gibt 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 nicht unterstützt, wenn das Ereignis im Hintergrund ausgeführt wird.
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.
Der App Builder Die Job-Warteschlange schläft unbegrenzt und verwendet nur minimale Ressourcen, bis ein Ereignis in die Warteschlange gestellt wird. Sie führt keine Abfragen für auszuführende Jobs durch. Stattdessen verwendet sie das aufgabenbasierte asynchrone Muster von Microsoft und stellt so sicher, dass die Systemressourcen vollständig genutzt werden.
Terminplaner
App Builder unterstützt die Planung der Ausführung von Ereignissen, anstatt die manuelle Ausführung von Ereignissen zu erfordern. Der Scheduler läuft wie die Jobwarteschlange im Hintergrunddienst, solange die Webanwendung ausgeführt wird. App Builder unterstützt derzeit einen Ausführungsmodus für ein geplantes Ereignis, die sogenannte mehrzeilige Ausführung. Dies unterscheidet sich von einem Ereignis, das per Knopfdruck ausgeführt wird. Wenn ein Benutzer ein Ereignis für ein Geschäftsobjekt ausführt, wird es für eine einzelne Zeile ausgeführt. Wenn der Planer ein Ereignis ausführt, wird es für das gesamte Geschäftsobjekt ausgeführt. Dies bedeutet, dass die Warteschlange jede Zeile im Geschäftsobjekt durchläuft und das geplante Ereignis für diese Zeile ausführt. Dies geschieht, indem jede Zeile zur Ausführung durch die Jobwarteschlange in die Warteschlange gestellt wird.
Da die geplanten Ereignisse zur Ausführung an die Jobwarteschlange übermittelt werden, App Builder kann die Leistungsvorteile nutzen, die sich aus der drosselung der Ausführung dieser potenziell großen Datensätze ergeben. Dies bietet auch die gleiche Sichtbarkeit für geplante Ereignisse in Bezug auf Überwachung und Protokollierung. Für jede Zeile, die vom geplanten Ereignis ausgeführt wird, wird ein Eintrag im Protokoll erstellt. Die Primärschlüsselinformationen für jede Zeile werden in das Protokoll aufgenommen, um das Auffinden und Debuggen von Problemen 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 an einen Zeitplan angehängt werden.
Um einen Zeitplan zu erstellen, gehen Sie zum Abschnitt Überwachung in der IDE. Klicken Sie auf Zeitpläne und erstellen Sie einen neuen Zeitplan.
Nachfolgend sind die Arten von Zeitplänen aufgeführt App Builder unterstützt:
- Einmalige Ausführung - Wählen Sie einen Tag und eine Uhrzeit in der Zukunft aus, an dem das Ereignis ausgeführt werden soll. App Builder führt das Ereignis zum geplanten Zeitpunkt aus und deaktiviert dann den Zeitplan.
- Periodische Ausführung - Führen Sie das Ereignis alle X Sekunden/Minuten/Stunden aus.
- Tägliche Ausführung - Führen Sie das Ereignis alle X Tage zu einer genauen Zeit aus. Dies kann so konfiguriert werden, dass es jeden Tag, jeden 3. Tag, alle 7 Tage usw. ausgeführt wird.
- Wöchentliche Ausführung - Führen Sie das Ereignis alle X Wochen zu einer genauen Zeit an einem genauen Wochentag aus. In diesem Zeitplan kann der Entwickler bestimmte Wochentage auswählen, an denen das Ereignis ausgeführt werden soll. Führen Sie es beispielsweise jeden zweiten Sonntag und Mittwoch um 19:00 Uhr aus.
- 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, gehen Sie zur Seite „Zeitpläne“ und klicken Sie auf das Symbol „Ereignisse“. Fügen Sie das Ereignis zum Zeitplan hinzu und geben Sie eine maximale Parallelität und die Benutzer-ID an, die das Ereignis ausführen wird. Wenn das Geschäftsobjekt „Ereignis“ mehrere Zeilen zurückgibt, App Builder versucht, das Ereignis für jede Zeile mit der angegebenen Parallelität auszuführen. Wenn beispielsweise 100 Zeilen vom Geschäftsobjekt zurückgegeben werden und die maximale Parallelität 3 beträgt, App Builder versucht, 3 Instanzen des Ereignisses gleichzeitig auszuführen, bis das Ereignis 100 Mal ausgeführt wurde (einmal für jede Zeile).
Hinweis
Siehe den folgenden Artikel zu Als Benutzer ausführen, wenn Sie ein geplantes Ereignis als bestimmter Benutzer ausführen möchten.
Dienstinstanzen
Auf dieser Seite kann der Benutzer den Hintergrunddienst stoppen/starten und die aktiven Dienste und laufenden Jobs überwachen.
- Sie gibt das Startdatum des Dienstes und die Operationszeit an.
-
Es gibt die Schaltflächen Stop und Start zum Stoppen des Hintergrunddienstes.
-
Stop beendet alle aktuell ausgeführten Jobs und bricht alle noch in der Warteschlange befindlichen Jobs ab. Außerdem wird verhindert, dass geplante oder aufgerufene Ereignisse in die Warteschlange gestellt werden.
- Start startet den Hintergrunddienst wieder, löscht die Aktivitätstabelle und beginnt mit der Planung und Unterstützung von Hintergrundereignissen.
- 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 für die laufenden Dienstinstanzen und laufenden Jobs geladen, ohne dass der Benutzer den gesamten Browser aktualisieren muss.
Seite „Protokolle“
- Zeigt Nachrichten von der aktuell ausgeführten Instanz des Dienstes an.
- Verfügbar auf der Seite „Dienstinstanzen“
Abbrechen eines Auftrags
Wie App Builder Die Art und Weise, wie ein Job abgebrochen wird, hängt vom Status des Jobs und der Art des ausgeführten Jobs ab.
- Ausstehender Status - Der Job wurde erstellt und in die Warteschlange gestellt, wird aber noch nicht ausgeführt. In diesem Status App Builder bricht den Job sofort ab.
- Laufstatus - Wenn der Job läuft, App Builder sendet eine Abbruchanforderung an den Job. Manche Vorgänge brauchen länger zum Abbrechen 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.
- Job planen - Wenn der Job ein geplanter Job ist und er n Jobs erstellt hat, um das geplante Ereignis auszuführen. Durch das Abbrechen des geplanten Jobs werden auch die von ihm initiierten Jobs abgebrochen. Mit anderen Worten, es wird die gesamte Ausführung des Zeitplans abgebrochen.