【问题标题】:How to trigger a Spring cloud task from an external application?如何从外部应用程序触发 Spring Cloud 任务?
【发布时间】:2019-01-15 08:58:02
【问题描述】:

我创建了一个 spring 云任务,它将根据需求执行一些特定的任务。我想从另一个 Spring Boot 应用程序中调用此任务。请让我知道是否有任何方法可以从外部应用程序调用以下任务。

@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 来调用 Spring Cloud 任务吗?

【问题讨论】:

标签: spring-cloud-task


【解决方案1】:

如果在Spring Cloud Dataflow 上注册Task,那就太好了。 注册任务后,您可以进行 REST 调用来触发任务。看看这个example

你也可以使用Spring Cloud Dataflow Rest Client

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

然后您可以开始启动之前使用 API Rest 获得的任务。

如果您不想使用 Spring Cloud DataFlow,请记住创建 Task 时,它本身就是一个 Spring Boot Application,因此您可以expose end points 来触发 Task。

【讨论】:

  • 感谢您给我一些意见。不使用 Spring Cloud DataFlow 是否可以触发 Spring Cloud 任务?
  • @Ravikiran 您可以公开端点,因为 Spring Task 是一个 Spring Boot 应用程序。请查看答案的更新。
  • @Ravikiran 请提供任何反馈,以防此答案不够。
  • 我使用任务启动器和spring cloud stream解决了这个问题
猜你喜欢
  • 2018-09-09
  • 2018-07-31
  • 1970-01-01
  • 2020-04-11
  • 2013-09-07
  • 2019-12-16
  • 1970-01-01
  • 1970-01-01
  • 2014-03-05
相关资源
最近更新 更多