Задания Spring Batch можно запустить из командной строки, сказав JVM запустить CommandLineJobRunner. Согласно JavaDoc , выполнение той же команды с добавленным параметром -stop
остановит задание:
Аргументы этого класса могут быть предоставлены в командной строке
(через пробел) или через stdin (через новую строку). Oни
являются следующими:
jobPath jobIdentifier (jobParameters) * Параметры командной строки:
следует
jobPath
: контекст приложения xml, содержащий задание
-restart
: (необязательно) для перезапуска последнего неудачного выполнения
-stop
: (необязательно), чтобы остановить текущее выполнение
-abandon
: (необязательно) отменить остановленное выполнение
-next
: (необязательно) для запуска следующего в последовательности в соответствии с JobParametersIncrementer в Job jobIdentifier: имя задания или идентификатор выполнения задания (для -stop, -abandon или -restart).
jobParameters
: от 0 до многих параметров, которые будут использоваться для запуска задания, указанного в виде пар ключ = значение.
Однако в JavaDoc для метода main () параметр -stop не указан. Просматривая код на docjar.com, я не вижу возможности использовать параметр -stop там, где я ожидаю.
Я подозреваю, что можно остановить пакет, запущенный из командной строки, но только в том случае, если выполняемые пакеты поддерживаются без переходных процессов jobRepository
? Если в командной строке запускается пакет, в котором хранятся только данные в HSQL (т. Е. В памяти), невозможно остановить задание, кроме CTRL-C
и т. Д.