我有一个符合JSR-352的简单Spring Batch应用程序。
我需要将其部署为Spring Cloud Data Flow服务器上的托管任务。据我所知-为了能够将此作为任务部署,我需要将此应用程序转换为Spring Boot应用程序。
我试图添加Spring Boot依赖项和Main类,但是启动应用程序时它没有运行Batch作业。
主类
@SpringBootConfiguration
@EnableAutoConfiguration
@EnableBatchProcessing
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
在以下位置创建的批处理文件
META-INF/batch-jobs/myjob.xml
当我在主类中使用JobOperator来启动作业(没有Spring Boot)时,它可以工作。
将其作为Spring Boot应用程序运行时我缺少什么?
答案 0 :(得分:1)
您缺少@EnableTask
注释。这样,您的批处理作业将作为短期应用程序运行。换句话说,只要您的XML中的业务逻辑需要运行,该应用程序就可以运行,并且可以正常关闭和释放资源。
请克隆并尝试Spring Cloud Task samples [请参阅:BatchJobApplication
]。所有这些都应在SCDF中按原样工作。