Как запустить облачную задачу Spring из внешнего приложения?

Я создал весеннюю облачную задачу, которая будет выполнять определенную задачу в зависимости от требований. Я хотел вызвать эту задачу из другого приложения весенней загрузки. Пожалуйста, дайте мне знать, есть ли способ вызвать указанную ниже задачу из внешнего приложения.

@SpringBootApplication
@EnableTask
public class FileGenerationTaskApplication {
    @Autowired
    private DataSource dataSource;

    public class FileGeneratorTaskConfigurer extends DefaultTaskConfigurer {
        public FileGeneratorTaskConfigurer(DataSource dataSource){
            super(dataSource);
        }
    }

    @Bean()
    public FileGeneratorTaskConfigurer getTaskConfigurer() {
        return new FileGeneratorTaskConfigurer(dataSource);
    }

    public static void main(String[] args) {
        SpringApplication.run(FileGenerationTaskApplication.class, args);
    }


    @Component
    public static class FileGeneratorTaskRunner implements  ApplicationRunner {

        @Autowired
        private FulfillmentFileGenerationService service;


        public void run(ApplicationArguments args) throws Exception {
            System.out.println("FileGeneratorTaskRunner from Spring Cloud Task!");
            service.fulFillmentFileGenerationTask();
        }
    }

}

Можем ли мы создать REST API для вызова весенней облачной задачи?


person Ravikiran    schedule 08.08.2018    source источник
comment
Вы можете создать поток с приемником запуска задач для запуска задачи в PCF, а затем создать настраиваемый триггер для вызова потока. docs.spring.io/spring-cloud-dataflow-server-mesos/docs/   -  person Gayatri    schedule 20.03.2019


Ответы (1)


Было бы неплохо зарегистрировать Task в Spring Cloud Dataflow. После того, как вы зарегистрировали свою задачу, вы можете выполнять вызовы REST для запуска задачи. Проверьте этот пример.

Вы также можете использовать клиент Spring Cloud Dataflow Rest Client

DataFlowOperations dataFlowOperations = new DataFlowTemplate(URI.create(springDataFlowUri));
TaskOperations operations = dataFlowOperations.taskOperations();

Затем вы можете начать запускать ранее полученные Задачи с помощью API Rest.

Если вы не хотите использовать Spring Cloud DataFlow, помните, что при создании задачи это приложение Spring Boot само по себе, поэтому вы можете открыть конечные точки для запуска задачи.

person dbustosp    schedule 08.08.2018
comment
Спасибо, что предоставили мне некоторые материалы. Можно ли запустить весеннюю облачную задачу без использования Spring Cloud DataFlow? - person Ravikiran; 09.08.2018
comment
@Ravikiran вы можете указать конечные точки, учитывая, что Spring Task является приложением Spring Boot. Пожалуйста, смотрите обновление к ответу. - person dbustosp; 09.08.2018
comment
@Ravikiran Пожалуйста, оставьте отзыв, если этого ответа недостаточно. - person dbustosp; 14.08.2018
comment
Мне удалось решить проблему с помощью средства запуска задач и весеннего облачного потока. - person Ravikiran; 17.08.2018