Tasks

Einführung in Tasks in ConSol CM

Mit Tasks können Skripte asynchron ausgeführt werden, sodass die Skriptausführung nicht mit Benutzeraktionen im Web Client oder CM/Track verknüpft ist. Tasks eignen sich daher für allgemeine Operationen und für Operationen, deren Verarbeitung so lange dauert, dass es bei einer Ausführung als reguläres Skript zu Timeouts kommen würde.

Konzepte, Begriffe und Definitionen

Konzept

Andere Begriffe

Definition

Task

 

Asynchrone Ausführung eines Skripts

Task-Skript

 

Skript, in dem die von einem Task ausgeführten Operationen und das Verhalten des Task bei Fehlern oder Abbruch implementiert sind

Task executor

 

Modul, das die Datenbank nach neuen geplanten Tasks durchsucht und diese ausführt

Task descriptor

 

Internes Objekt, in dem Informationen über einen Task gespeichert sind

Execution specification

 

Internes Objekt, in dem Informationen über das Startdatum und die Startzeit des Task gespeichert sind; wenn nicht angegeben, wird der Task sofort gestartet

Zweck und Verwendung

Tasks ermöglichen asynchrone Operationen. Sie können entweder manuell in der Web Admin Suite oder automatisch in einem Skript erstellt werden. In beiden Fällen basiert der Task auf einem Skript des Typs Task, in dem die Logik der durchzuführenden Operationen implementiert ist. Tasks können für Operationen verwendet werden, die sich nicht auf spezifische Benutzeraktionen im Web Client oder CM/Track beziehen, wie zum Beispiel allgemeine Wartungsarbeiten. Zusätzlich ermöglichen Tasks die Durchführung von Operationen, deren Verarbeitung lange dauert, sodass sie einen Timeout verursachen würden, wenn sie als reguläres Skript ausgeführt würden.

Mit Tasks können Objekte endgültig aus der ConSol CM-Datenbank gelöscht werden. Die durch einen Task ausgeführten Aktionen können nicht rückgängig gemacht werden. Tasks, die Massenoperationen durchführen, können die System-Performance schwer beeinträchtigen.

Verfügbare Einstellungen für die Task-Ausführung

Die folgenden Einstellungen sind für die Task-Ausführung im Allgemeinen verfügbar:

Grundlegende Aufgaben

Sie müssen folgende Schritte ausführen, um Tasks in ConSol CM zu nutzen:

  1. Erstellen Sie ein Task-Skript, in dem die Logik der durchzuführenden Operationen implementiert ist, siehe Erstellen eines Task-Skripts.
  2. Erstellen Sie einen Task, die das Task-Skript ausführt, siehe Erstellen eines Tasks.
  3. Sie können den Fortschritt des Task in der Task-Liste nachverfolgen, siehe Nachverfolgen der Task-Ausführung.

Erstellen eines Task-Skripts

Erstellen Sie im Abschnitt Skripte der Web Admin Suite ein Skript des Typs Task (siehe Skripte). Das Skript muss die Logik der durchzuführenden Operationen implementieren.

Das Task-Skript muss folgende vier Methoden implementieren:

Erstellen eines Tasks

Es gibt zwei Möglichkeiten zur Erstellung eines Tasks:

Standardmäßig werden Tasks sofort ausgeführt. Es ist nicht möglich, manuell erstellte Tasks auf der graphischen Benutzeroberfläche für einen späteren Zeitpunkt zu planen. In Definieren des Ausführungsdatums eines Tasks ist beschrieben, wie das Ausführungsdatum im Task-Skript geändert werden kann.

Nachverfolgen der Task-Ausführung

Die Task-Liste enthält alle aktiven Tasks im System. Für jeden Task werden folgende Informationen angezeigt:

Erweiterte Aufgaben

Abbrechen eines Tasks

Es gibt zwei Möglichkeiten, um einen laufenden Tasks abzubrechen:

Abgebrochene Tasks werden entfernt und können nicht fortgesetzt werden.

Wiederholen eines Tasks

Es gibt zwei Szenarien, in denen Sie einen Task möglicherweise wiederholen möchten:

In beiden Fällen können Sie den Task mit der folgenden Methode wiederholen:

return new ExecutionSpecification().setRetryRequested(true);

Wenn Sie ein bestimmtes Datum oder eine bestimmte Zeit, zu der der Task wiederholt werden soll, setzen möchten, können Sie folgende Methode verwenden:

return new ExecutionSpecification().setRetryRequested(true).setExecutionDate(new Date(new Date().getTime() + 15000));

Fügen Sie diesen Code im Task-Skript am Ende der Methode onExecute() ein, wenn Sie den Task in der regulären Ausführung wiederholen möchten. Wenn Sie den Task wiederholen möchten, wenn ein Fehler aufgetreten ist, fügen Sie den Code in die Methode onError() ein.

Definieren des Ausführungsdatums eines Tasks

Wenn ein Task nicht sofort gestartet werden soll, können Sie die Startzeit in der Methode onInitialize() setzen.

def onInitialize(taskDescriptor) {

return new ExecutionSpecification().setExecutionDate(new Date(new Date().getTime() + 15000));

}

Wenn der Task gestartet wird, wird das Ausführungsdatum in Task-Liste in der Spalte Nächste Ausführung am angezeigt.

Verwenden der Kontextreferenz

Wenn Sie Tasks aus anderen Skripten erstellen, können Sie mithilfe der Kontextreferenz feststellen, welches Skript den Task erstellt hat. Sie setzen beim Erstellen des Tasks eine Kontextreferenz, die im Task-Skript abgerufen werden kann, um unterschiedliches Verhalten je nach Ursprungsskript zu implementieren.