Spring Cloud Task - Проблемы с удаленными разделами - PullRequest
0 голосов
/ 27 марта 2020

У нас есть локальная настройка Spring Cloud Data Flow, и задача запускает Spring Batch Job, который читает из базы данных и записывает в AWS S3, все это прекрасно работает.

  1. Когда оно доходит до остановки JOB, задача останавливается, но возобновить работу невозможно, так как статус находится в состоянии «STARTED», это, я думаю, мы можем обработать в коде, установив статус пакета в «STOPPED» при срабатывании остановки, правильно мне, если это не может быть обработано?
  2. Также при попытке остановить отдельное подчиненное задание возникает ошибка:

    2020-03-27 10: 48: 48.140 INFO 11258 --- [nio-9393-exe c -7] .s. c .dssiDefaultTaskExecutionService: Запрос на остановку выполнения задачи для идентификатора 192 для платформы по умолчанию отправлен 2020-03-27 10: 48: 48.144 ОШИБКА 11258 - - [nio-9393-exe c -7] os c .ds c .RestControllerAdvice: возникла исключительная ситуация при обработке запроса

    java .lang.NullPointerException: null at org. springframework.cloud.dataflow.server.service.impl.DefaultT askExecutionService.cancelTaskExecution (DefaultTaskExecutionService. java: 669) ~ [spring-cloud-dataflow-server-core-2.3.0.RELEASE.jar! /: 2.3.0.RELEASE] в org.springframework.cloud.dataflow.server .service.impl.DefaultTaskExecutionService.lambda $ stopTaskExecution $ 0 (DefaultTaskExecutionService. java: 583) ~ [spring-cloud-dataflow-server-core-2.3.0.RELEASE.jar! /: 2.3.0.RELEASE]

  3. Как мы реализуем это в распределенной среде, где у нас есть главный сервер, который может запустить мастер на главном сервере и запустить рабочих на соответствующих подчиненных серверах?

1 Ответ

0 голосов
/ 30 марта 2020

1) Вы правы, вам нужно изменить свой статус с STARTED на FAILED.

2) Поскольку удаленное разбиение использует Spring Cloud Deployer (не Spring Cloud Data Flow) для запуска рабочих задач, SCDF делает нет способа определить информацию о платформе, чтобы правильно остановить рабочую задачу. Я добавил GH Issue spring-cloud / spring-cloud-dataflow # 3857 для решения этой проблемы.

3) Текущая реализация не позволяет пользователю запускаться на нескольких серверах, а позволяет платформе (Kubernetes, Cloud) Основатель dry) распространяет рабочие задания. Вы можете реализовать свой собственный развертыватель, чтобы добавить эту функцию.

...