2017-12-19 5 views
0

Wir migrieren derzeit ein komplexes Spring Boot Batch + Admin UI System in eine Feder-Cloud-Task-Infrastruktur, die Cloud Data Flow verwaltet.Wie kann ich eine Spring Batch Cloud Task basierend auf einem bestimmten Batch Job definieren?

Als erste Phase von POC müssen wir in der Lage sein, alle Spring Batch-Jobs unter der gleichen Implementierungs-JAR zu packen und sie einzeln mit benutzerdefinierten Jobparametern ausführen zu können und eine Art von REST-API zu unterstützen Jobs/Aufgabe aus der Ferne.

Wir entfernten alle feder Batch Admin Abhängigkeiten und hinzugefügt, um die feder Cloud-Starter-Aufgabe

wir die Boot-Anwendung Spring Cloud-Task-Programmiermodell auch angepasst.

Nach der Registrierung der JAR im Spring Cloud-Datenfluss konnten wir keine Aufgabe definieren, die nur einen bestimmten Job mit benutzerdefinierten Parametern auslöst.

Lesen der offiziellen Dokument und StackOverFlow-Probleme ohne weitere vielversprechende Ergebnisse.

10x

Antwort

1

Um zu erreichen, was Sie zu tun suchen, gibt es zwei Schritte:

  1. Ihre Batch-Jobs in einem Frühlings-Boot über jar Repackage. Das sollte ziemlich geradlinig sein.
  2. Erstellen Sie Aufgabendefinitionen für jeden Job, den Sie ausführen möchten. Sobald Ihr über jar erstellt und mit Spring Cloud Data Flow registriert wurde, müssen Sie die Jobdefinitionen erstellen. Jede Definition wird so etwas wie folgt aussehen, wo die über jar einen Batch-Job enthält namens fooJob und eine namens barJob:

dataflow:> app register --name batchJobs --type task --uri <URI to über jar> dataflow:> task create --name fooBatchJob --definition "batchJobs --spring.batch.job.names=fooJob" dataflow:> task create --name barBatchJob --definition "batchJobs --spring.batch.job.names=barJob"

Verwandte Themen