Я создал несколько проектов Spring Batch и развернул это задание с помощью Spring Cloud Data Flow (SCDF).
После запуска задачи (задания) в SCDF создается JVM для выполнения задачи (задания).
Однако, когда задача завершена, эта JVM не заканчивается. Это все еще существовало.
Когда я запускаю свою работу 20 раз, она объявляет, что
Cannot launch task A. The maximum concurrent task executions is at its limit [20]
И есть некоторая информация о моей работе, первый журнал заданий заканчивается:
HikariPool-1 - Shutting down...
Но после того, как я использовал свойство ниже для Spring Batch Project:
spring.cloud.task.singleInstanceEnabled=true
и использовал метод afterJob с помощью JobExecutionListenerSupport Журнал задачи (задания) заканчивается:
o.s.b.c.l.support.SimpleJobLauncher : Job: [SimpleJob: [name=remindJob]] completed with the following parameters: [{run.id=3}] and the following status: [COMPLETED] in 7s636ms
o.s.integration.leader.DefaultCandidate : DefaultCandidate{role=EngineProcess, id=126} leadership has been revoked: LockContext{role=Process, id=126, isLeader=false}
Это какие-то проблемы с моим Spring Batch Job?
И мой главный вопрос - это то, кто отвечает за полную остановку JVM (задачи)? Часть Spring Cloud Data Flow или Spring Batch и как?
Я думаю, что когда задача завершена, она должна быть уничтожена (JVM остановлена), и число одновременных выполнений задачи не может быть на пределе.