Skip to main content

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.

RunnerBeschreibung
ImportTasksRunnerAufgaben aus einem Verzeichnis im lokalen Dateisystem in einen Aufgaben-Pool importieren
CoreDataImportRunnerStammdaten importieren
TermDataImportRunnerSemesterdaten (zu einem Semester) importieren
TaskPoolSyncRunnerAlle Aufgaben-Pools im System synchronisieren
SeedRunnerJSON-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:

docker-compose.term-data.yml
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