java - Spring Batch - 保持服务器运行

标签 java spring-batch vaadin

我制作了这个 Spring 批处理项目(csv 到数据库,经典)- 工作正常:https://github.com/Tyvain/Spring-Batch-Generic-Bulk

在一个单独的项目中,我使用 vaadin 制作了一个应用程序,我可以在其中上传文件,效果很好: https://github.com/Tyvain/vaadin-simple-upload-file

-> 我们需要在上传文件时触发作业。

因此,我通过以下步骤将这 2 个项目重新组合到一个应用程序中:

  1. 禁用批处理:job.enabled: false(在 application.yml 中)
  2. 将所需的 vaadin 库添加到 pom
  3. 添加 View (MainView.java)。

此修改的来源:https://github.com/Tyvain/Spring-Batch-Generic-Bulk/tree/include-vaadin-upload-page

此时,我仍然不确定如何启动该作业,但我面临另一个问题:当我启动应用程序时,它停止了。留在 vaadin 应用程序中的服务器不会留在此处。

编辑: 当我从作业配置中删除这些注释时,服务器保持正常运行:

//@Configuration
//@EnableBatchProcessing

1/是否可以在启用 spring-batch 的情况下让我的服务器保持运行?

2/这是错误的做法吗?

解决方案工作:https://github.com/Tyvain/ProcessUploadedFile-Vaadin_SpringBatch

最佳答案

当您从 Web 服务器内运行 Spring Batch 作业时,您需要设置一个在后台异步运行作业的 JobLauncher。此处详细解释:https://docs.spring.io/spring-batch/4.0.x/reference/html/job.html#runningJobsFromWebContainer

您需要使用异步TaskExecutor实现(例如ThreadPoolTask​​Executor)。请参阅此处的示例:https://docs.spring.io/spring-batch/4.0.x/reference/html/job.html#configuringJobLauncher

关于java - Spring Batch - 保持服务器运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51940165/

相关文章:

java - 防止tomcat在每次java更新时崩溃

java - TestNG - WebDriver - Web 应用程序测试 - 独立测试

java - 在从客户端获取请求之前做一些事情,tomcat war

java - 如何强制 Vaadin v8 更新屏幕?

Vaadin - 从多个对象到 Grid 的数据

java - Android Studio 3.5 : can I export run configuration to jar?

java - 尝试创建一个方法,该方法采用鼠标单击的位置,并且应该返回一个作为所选单元格的单元格编号

java - SpringBatch Step chunk 中的通用方法

java - 如何在 Java 中循环遍历大型 SQL 结果集或一次获取 X 行数

java - Spring Batch 在运行步骤之前解析步骤的资源