我创建了一个Spring cloud任务,它将根据需求执行一些特定的任务。我想从另一个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任务吗?
答案 0 :(得分:0)
最好在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,请记住创建任务时,它本身就是一个Spring Boot应用程序,因此您可以expose end points来触发Task。