Spring Batch Job + пользовательский интерфейс Spring Cloud Flow - PullRequest
0 голосов
/ 31 мая 2019

Наше приложение построено с использованием Spring boot + Gradle. У нас есть новое требование для реализации весеннего пакетного задания, и оно будет запущено с использованием autosys (инструмент планирования заданий), и в нем есть 3 шага, выполняющих 3 различные операции (подготовка файла, операции ftp и аудита). Я приложил файл конфигурации @EnableBatchProcessing для вашей справки. Вот мои вопросы, связанные с потоком данных Spring Cloud.

  1. Может ли проект потока данных облачной среды Spring быть построен с использованием Gradle? Я вижу все примеры проектов, построенных с использованием Maven, и на официальной странице Spring говорится, что Maven необходим для Spring Cloud Data Flow. Gradle - единственный утвержденный строительный проект в нашей компании.
  2. Мы ищем функции или операции Spring Batch Admin UI в потоке данных Spring Cloud. Могу ли я узнать, как настроить задания в потоке данных Spring Cloud? любой пример проекта?
  3. Наше приложение развернуто в контейнере PCF (Pivotal Cloud Foundry). Поэтому возникает вопрос: нужно ли добавлять какие-либо сервисы / плагины / пространство должно быть выделено в инфраструктуре PCF для поддержки потока данных Spring Cloud? ...
  4. Готово ли создание проекта потока данных Spring Cloud? это можно использовать в производстве ?.

     @Configuration   
     @EnableBatchProcessing     
     public class TaskletsConfig {

     @Autowired   
     private JobBuilderFactory jobs;

     @Autowired   
     private StepBuilderFactory steps;

     @Bean   
     protected Step flatFilePreparation() {    
         return steps
                 .get("flatFilePreparation")
                 .tasklet(new FlatFilePreparation())
                 .build();
     }

     @Bean
     protected Step ftpFile() {
         return steps
                 .get("ftpFile")
                 .tasklet(new FtpFile())
                 .build();
     }

     @Bean
     protected Step auditFilePreparation() {
         return steps
                 .get("auditFilePreparation")
                 .tasklet(new AuditFilePreparation())
                 .build();
     }

     @Bean
     protected Step errorStep() {
         return steps
                 .get("errorStep")
                 .tasklet(new ErrorStep())
                 .build();
     }

     @Bean
     public Job job() {
        return jobs.get("psbijob").start(flatFilePreparation()).on(ExitStatus.FAILED.getExitCode()).to(errorStep())
             .from(flatFilePreparation()).on("*").to(ftpFile()).on(ExitStatus.FAILED.getExitCode()).to(errorStep())    
             .from(ftpFile()).on("*").to(auditFilePreparation()).end().build();      
     }

     @Bean    
     public JobRepository jobRepository() throws Exception {    
         MapJobRepositoryFactoryBean factory
                 = new MapJobRepositoryFactoryBean();    
         factory.setTransactionManager(transactionManager());    
         return (JobRepository) factory.getObject();    
     }    

     @Bean    
     public PlatformTransactionManager transactionManager() {    
         return new ResourcelessTransactionManager();    
     }    

     @Bean    
     public JobLauncher jobLauncher() throws Exception {    
         SimpleJobLauncher jobLauncher = new SimpleJobLauncher();    
         jobLauncher.setJobRepository(jobRepository());    
         return jobLauncher;    
     }    
     }

Ответы [ 2 ]

0 голосов
/ 06 июня 2019

Можно ли запустить задачу Spring Cloud без использования Spring Cloud DataFlow? Я смог зарегистрировать наше приложение в пользовательском интерфейсе весеннего потока данных облака, но наша пакетная работа запускается с помощью инструмента Autosys (не запускается вручную). Поэтому мы хотим убедиться, что SCDF отслеживает все задания, которые были запущены за пределами пространства SCDF? Наша работа еженедельная.

0 голосов
/ 01 июня 2019

Я попытаюсь распаковать вопросы.

Можно ли построить проект потока данных облака Spring с помощью Gradle?

Все, что требуется для потока данных облака облака (SCDF) Springсоздать и запустить пакетное задание - приложение Spring Boot (uber-jar).Не имеет значения, создаете ли вы приложение с помощью Maven, Gradle или другими пользовательскими средствами.Docker - еще один популярный выбор, и это единственный выбор для Kubernetes.В PCF мы рекомендуем использовать артефакты maven, которые, конечно же, можно создавать и с Gradle.

Мы ищем функции или операции Spring Batch Admin UI в Spring Cloud.поток данных.Могу ли я узнать, как настроить задания в потоке данных Spring Cloud?любой пример проекта?

Я бы посоветовал вам изучить раздел Панель инструментов в справочном руководстве.Кроме того, у нас есть сквозная задача и Руководство по пакетной разработке на микросайте SCDF.Все, что вы делали в Spring Batch Admin, может быть полностью покрыто SCDF, и множество других функций также находится на вершине.Пожалуйста, найдите время, чтобы хотя бы просмотреть, что все включено.

Нужно ли добавлять какие-либо сервисы / плагины / пространство должно выделяться в инфраструктуре PCF для поддержки потока данных Spring Cloud?

Никаких особых требований.SCDF - это просто загрузочное приложение.Вы можете отправить его вручную в Org / Space или использовать плитку SCDF для PCF (полностью управляемая рыночная служба) для автоматической подготовки SCDF и связанных компонентов (Security / Upgrades / DB / Broker).

Готово ли создание проекта потока данных Spring Cloud?это можно использовать в производстве?

1,0 ГА SCDF был выпущен еще в июле 2016 года. В настоящее время мы находимся на версии 2,1 ГА.С момента первого этапа GA было выпущено более 50 серийных релизов.Плитка SCDF для PCF также выпускается в течение> 1 года.И, в частности, в PCF, у нас есть несколько клиентов, использующих SCDF в производстве.

...