Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java:运行Spring批处理_Java_Spring_Spring Batch - Fatal编程技术网

Java:运行Spring批处理

Java:运行Spring批处理,java,spring,spring-batch,Java,Spring,Spring Batch,我有以下JEE应用程序设置: WAR-1包含服务器web应用程序(带有服务器实现) WAR-2包含批处理web应用程序(与批处理一起) 两个WAR都在各自独立的应用服务器上运行。如何从WAR-1(应用服务器)启动Spring批处理(在WAR-2中设置) 谢谢Spring Batch提供了一个界面,您可以浏览Spring Batch文档。Spring Batch Admin的一个子项目称为Spring Batch Integration。它包含许多组件,用于同时使用Spring批处理和Spri

我有以下JEE应用程序设置:

  • WAR-1包含服务器web应用程序(带有服务器实现)
  • WAR-2包含批处理web应用程序(与批处理一起)
两个WAR都在各自独立的应用服务器上运行。如何从WAR-1(应用服务器)启动Spring批处理(在WAR-2中设置)


谢谢

Spring Batch提供了一个界面,您可以浏览Spring Batch文档。

Spring Batch Admin的一个子项目称为Spring Batch Integration。它包含许多组件,用于同时使用Spring批处理和Spring集成。在该项目中,有用于通过消息启动作业的组件。使用这些组件,您可以维护解耦的部署,在事件驱动的manor中启动作业,并根据需要扩展它们。这是我推荐的路线

org.springframework.batch.core.launch.JobLauncher 您可以在此处阅读有关此项目的更多信息:


您还可以在这里查看Gunnar Hillart和我去年在SpringOne2GX上就Spring批处理集成所做的一次谈话:

感谢您指出这种有趣的方法。所以我基本上只是像调用RESTful web服务一样调用批处理?
private final org.springframework.batch.core.configuration.JobRegistry jobRegistry;
private final org.springframework.batch.core.launch.JobLauncher jobLauncher;

@POST
@Path("/batch/trigger/{batchJobName}")
@Consumes(ALL_MEDIA_TYPES)
@Produces(MediaType.APPLICATION_JSON)
public Response runBatchJob(@PathParam("batchJobName") String batchJobName) throws JobExecutionException {
    Job job = jobRegistry.getJob(batchJobName);
    JobParametersBuilder builder = new JobParametersBuilder();
    JobExecution execution = jobLauncher.run(job, builder.toJobParameters());
    Long jobExecutionId = execution.getId();
    return Response.ok().entity(jobExecutionId).build();
}