Durchsuchbare Dokumentation aufrufen | Zurück zur Dokumentationsübersicht
Navigation: Dokumentationen agorum core > agorum core JavaScript-API
Mithilfe dieser JavaScript-Bibliothek können Sie einmalige oder wiederkehrende Aufgaben planen und ausführen.
Hintergrundinformationen zu parallel laufenden Tasks
Das System führt Tasks parallel aus, wenn die Tasks verschiedene IDs haben.
Ein Task für eine wiederkehrende Aufgabe wird erst neu gestartet, wenn der vorherige Lauf abgeschlossen ist. Wenn ein Task 10 Minuten zur Bearbeitung benötigt, aber laut Skript jede Minute gestartet wird, startet das System den nächsten Task erst, wenn der vorhergehende beendet ist. Dadurch können Sie mit try-catch Fehler / Probleme abfangen, und der agorum task läuft stabiler durch als etwa Worker.
Die Anzahl parallel laufender Tasks ist auf 10 limitiert. Das System führt alle definierten Tasks mit verschiedenen IDs parallel aus.
Zusätzlich zu Tasks können Sie auch CronJobs und Worker für die Automatisierung von Aufgaben verwenden. Für weitere Informationen zu den Unterschieden zwischen CronJob, Task und Worker siehe Unterschied zwischen CronJob, Task und Worker.
Diese Bibliothek binden Sie stets am Anfang eines Skripts ein:
let task = require('/agorum/roi/customers/agorum.task/js/task');
Eigene Dateien/Administration/customers/<Konfigurationsprojekt>/js
Eigene Dateien/Administration/customers/<Konfigurationsprojekt>/js/task
test-task.js
.module.exports = { run: () => { console.log('mein task: ' + new Date()); } };
Eigene Dateien/Administration/customers/<Konfigurationsprojekt>/deploy/<pre|post>
let task = require('/agorum/roi/customers/agorum.task/js/task'); //task.id('<eindeutiger-name-des-tasks>').cron('* * * * *').post('require(\'/agorum/roi/customers/<Konfigurationsprojekt>/js/task/<JavaScript-Datei>\').run();'); //Beispiel task.id('testprojekt123.test.task').cron('* * * * *').post('require(\'/agorum/roi/customers/testprojekt123/js/task/test-task\').run();');
Tipp: in dem hier vorgestellten Beispiel wird eine Konsolenausgabe erzeugt:
console.log('mein task: ' + new Date());
Diese Ausgabe erscheint im support tool unter Base System > Schaltfläche „Show Log“.
Eigene Dateien/Administration/customers/<Konfigurationsprojekt>/js/task
Hinweis: Wenn Sie den Namen des Tasks ändern, müssen Sie den Task mit dem alten Namen im Workspace löschen:
Eigene Dateien/Administration/workspace/agorum.task/tasks
Eigene Dateien/Administration/customers/<Konfigurationsprojekt>/deploy/<pre|post>
let task = require('/agorum/roi/customers/agorum.task/js/task'); //task.id('<eindeutiger-name-des-tasks>').cron('* * * * *').post('require(\'/agorum/roi/customers/<Konfigurationsprojekt>/js/task/<JavaScript-Datei>\').run();'); //Beispiel task.id('testprojekt123.test.task').cron('* * * * *').post('require(\'/agorum/roi/customers/testprojekt123/js/task/test-task\').run();');
Welche agorum.tasks gerade aktiv sind, können Sie im Workspace einsehen.
Achtung: Datenverlust bei Änderung eines agorum.tasks im Workspace. Änderungen an dieser Stelle werden durch ein Update des Systems wieder überschrieben. Ändern Sie niemals einen agorum.task im Workspace, sondern passen Sie den agorum.task im entsprechenden Konfigurationsprojekt an.
Eigene Dateien/Administration/workspace/agorum.task/tasks
Läuft Ihr agorum.task in einen Fehler, erscheinen diese Fehler im agorum core support tool unter Base System:
Initialisiert die Task-Bibliothek für die Einrichtung des Tasks.
Syntax
let aTask = task.id('<eindeutiger-name-des-tasks>');
Parameter
Parameter | Beschreibung | Pflicht | Default-Wert |
---|---|---|---|
id | Definiert die ID des Tasks.
Beispiel |
ja | – |
Beispiel
let task = require('/agorum/roi/customers/agorum.task/js/task'); let aTask = task.id('agorum.sample.task1');
Rückgabewerte
Sie erhalten eine Instanz des Tasks zurück, mit der Sie alle weiterführenden Funktionen aufrufen können.
Verwendung
Diese Funktion verwenden Sie zur Initialisierung.
Exceptions
Zu dieser Funktion existieren keine Exceptions.
Definiert optional ein Datum, ab wann dieser Task das erste Mal laufen soll.
Geben Sie kein Datum an oder lassen den Aufruf von time weg, läuft der Task sofort.
Syntax
aTask = aTask.time(new Date('2023-12-31'));
Parameter
Parameter | Beschreibung | Pflicht | Default-Wert |
---|---|---|---|
date | Definiert ein date-Objekt, d. h. ab wann der Task das erste Mal laufen soll. | nein | new Date() |
Beispiel
let task = require('/agorum/roi/customers/agorum.task/js/task'); let aTask = task.id('agorum.sample.task1').time(new Date('2023-12-31'));
Rückgabewerte
Sie erhalten eine Instanz des Tasks zurück, mit der Sie alle weiterführenden Funktionen aufrufen können.
Verwendung
Diese Funktion verwenden Sie zum Setzen eines ersten Ausführungszeitpunkts für den Task.
Exceptions
Zu dieser Funktion existieren keine Exceptions.
Definiert das Intervall, mit dem das System diesen Task ausführt.
Lassen Sie cron weg, führt das System den Task nur einmal aus und löscht ihn.
Syntax
aTask = aTask.cron('* * * * *);
Parameter
Parameter | Beschreibung | Pflicht | Default-Wert |
---|---|---|---|
schedule | Definiert das Ausführungsintervall, mit dem das System den Task ausführt.
|
nein | null |
Beispiel
let task = require('/agorum/roi/customers/agorum.task/js/task'); // Beispiel: Task ab dem 31.12.2023 ausführen und dann immer jede Minute let aTask = task.id('agorum.sample.task1').time(new Date('2023-12-31')).cron('* * * * *');
Rückgabewerte
Sie erhalten eine Instanz des Tasks zurück, mit der Sie alle weiterführenden Funktionen aufrufen können.
Verwendung
Diese Funktion verwenden Sie zum Setzen eines Ausführungsintervalls.
Exceptions
Zu dieser Funktion existieren keine Exceptions.
Erstellt/ ändert die Einstellungen des definierten Tasks und gibt die JavaScript-Funktion mit, die dieser Task ausführen soll.
Der Task ist eingerichtet und wird vom System verarbeitet, sobald das System post aufruft.
Syntax
aTask.post('JavaScript-Code');
Parameter
Parameter | Beschreibung | Pflicht | Default-Wert |
---|---|---|---|
script | Definiert den JavaScript-Code, den der Task ausführt. | ja | – |
Beispiel
let task = require('/agorum/roi/customers/agorum.task/js/task'); // Beispiel 1: Task erstellen und ab dem 31.12.2023 immer minütlich laufen lassen task.id('agorum.sample.task1').time(new Date('2023-12-31')).cron('* * * * *').post('require(\'irgendeine-lib\').run();'); // Beispiel 2: Task erstellen und ab sofort minütlich laufen lassen task.id('agorum.sample.task2').cron('* * * * *').post('require(\'irgendeine-lib\').run();'); // Beispiel 3: Task erstellen und einmalig ab sofort laufen lassen. task.id('agorum.sample.task3').post('require(\'irgendeine-lib\').run();');
Beispiel für require
// Datei /agorum/roi/customers/<Konfigurationsprojekt>/js/task/my-task.js module.exports = { run: () => { // Etwas tun ... } };
let task = require('/agorum/roi/customers/agorum.task/js/task'); task.id('agorum.sample.task1').post('require(\'/agorum/roi/customers/agorum.sample/js/task/my-task\').run();');
Rückgabewerte
Diese Funktion liefert keine Rückgabewerte zurück.
Verwendung
Diese Funktion verwenden Sie, um den Task zu erstellen oder zu ändern und letztlich zu speichern, sodass das System diesen ausführen kann.
Exceptions
Zu dieser Funktion existieren keine Exceptions.
Löscht einen vorhandenen Task.
Syntax
task.id('eine-task-id').cancel();
Parameter
Zu dieser Funktion existieren keine Parameter.
Rückgabewerte
Diese Funktion liefert keine Rückgabewerte zurück.
Verwendung
Diese Funktion verwenden Sie, um einen vorhandenen Task abzubrechen.
Exceptions
Das System wirft eine Exception, wenn der Task mit der ID im System nicht existiert.