Runner
Spring bietet die Möglichkeit für CommandLine Runners. Diese kann man nutzen, um während der Entwicklung oder später im Produktivsystem bestimmte Aktionen durchzuführen. Nachfolgend eine Auflistung, für eine genauere Beschreibung zur Benutzung/zu den Details in der Java-Doc der jeweiligen Klasse nachlesen.
Grundsätzlich können die Runner mit gradle bootRun --args='<taskName> <arg1> <arg2> ...
aufgerufen werden. Dann wird das Spring Framework initialisiert und alle Runner werden aufgerufen. Diejenigen, die sich mit dem taskName
identifizieren, werden ausgeführt.
Runner | Beschreibung |
---|---|
ImportTasksRunner | Aufgaben aus einem Verzeichnis im lokalen Dateisystem in einen Aufgaben-Pool importieren |
CoreDataImportRunner | Stammdaten importieren |
TermDataImportRunner | Semesterdaten (zu einem Semester) importieren |
TaskPoolSyncRunner | Alle Aufgaben-Pools im System synchronisieren |
SeedRunner | JSON-Importschnittstelle für Initialisierung der Datenbank, siehe Seeding |
In IntelliJ kann eine Run/Debug Config erstellt werden, sodass über die IDE gestartet werden kann. Die Ausführung kann auch über Docker erfolgen. Die von den Runnern benötigten Dateien können per Volume eingebunden werden. Nachfolgend ein Beispiel:
version: '3'
services:
subato:
restart: "no"
volumes:
- '.runner/term-data:/conf/term-data'
command: import:term /conf/term-data
Über docker-compose.yml
und docker-compose.prod.yml
kann die Basiskonfiguration des Systems organisiert werden. Dann überschreibt docker-compose.term-data.yml
die Konfiguration für die Ausführung des Runners. So lässt sich der Runner starten:
docker compose -f docker-compose.yml -f docker-compose.prod.yml -f docker-compose.term-data.yml up subato