java - 如何在 tomcat 服务器启动时运行长时间运行的批处理作业?

标签 java spring tomcat spring-batch

我在应用程序启动时启动一个 spring-batch 作业

spring.batch.job.names=MyJob

@Configuration
public class MyJob {
    @Bean
    public Job testJob() throws IOException {
        return jobBuilderFactory.get(MyJob.class.getSimpleName())
                .start(import())
                .build();
    }
}

不幸的是,这会以某种方式延迟 tomcat 服务器启动。该作业有几分钟的运行时间,因此我收到以下错误:

Server Tomcat v8.0 Server at localhost was unable to start within 45 seconds. If the server requires more time, try increasing the timeout in the server editor.

问题:如何在不阻止 tomcat 启动的情况下运行此作业?例如运行异步作业?

最佳答案

您可以包含 ServletContextListener .

将您的代码放在 contextInitialized 中方法。

关于java - 如何在 tomcat 服务器启动时运行长时间运行的批处理作业?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34656257/

相关文章:

linux - 无法启动 TeamCity 和 Build 代理

java - 如何使用 View 模型获取数组列表中的位置?

java - 为什么 hashcode() 返回一个整数而不是长?

java - 指定具有多个上下文的 Camel 上下文关闭顺序

javascript - 如何使用 javascript 创建 soap 消息进行文件上传?

java - <mvc :view-controller> works in tomcat 6 and jetty, 但不是 tomcat 7

java - Tomcat 安装目录无效。它缺少预期的文件或文件夹 lib/jasper-el.jar

java - ViewModel中的LiveData对象为什么要在声明的时候实例化?

java - 水平添加多个列表

java - Couchbase 使用 key 获取给定日期范围内的文档