Spring 批量 - 保留服务器 运行
Spring batch - Keep the server running
我做了这个 spring 批处理项目(csv 到数据库,经典)- 工作正常:https://github.com/Tyvain/Spring-Batch-Generic-Bulk
在一个单独的项目中,我用 vaadin 制作了一个应用程序,我可以在其中上传文件,效果很好:
https://github.com/Tyvain/vaadin-simple-upload-file
-> 我们需要在上传文件时触发作业。
所以我将这 2 个项目重新组合到一个应用程序中,步骤如下:
- 禁用批处理:job.enabled:false(在 application.yml 中)
- 将所需的 vaadin 库添加到 pom
- 添加视图 (MainView.java)。
此修改的来源:https://github.com/Tyvain/Spring-Batch-Generic-Bulk/tree/include-vaadin-upload-page
此时,我仍然不确定如何启动作业,但我面临另一个问题:当我启动应用程序时,它停止了。在 vaadin 应用程序中保持运行的服务器不会在此处保持运行。
编辑:
当我从作业配置中删除这些注释时,服务器保持运行:
//@Configuration
//@EnableBatchProcessing
1/ 是否可以保持我的服务器 运行 spring-批量启用?
2/ 这是错误的做法吗?
解决方案有效:https://github.com/Tyvain/ProcessUploadedFile-Vaadin_SpringBatch
如果您想在上传文件后立即处理,spring-batch 不是正确的方法。我建议在使用@Async 和 CompletableFuture 上传后在后台线程中处理它,请在此处查看更多信息:
当您从 Web 服务器中 运行 一个 Spring 批处理作业时,您需要设置一个 JobLauncher
以便 运行 在后台异步执行您的作业。这里有详细解释:https://docs.spring.io/spring-batch/4.0.x/reference/html/job.html#runningJobsFromWebContainer
您需要使用异步 TaskExecutor
实现(例如 ThreadPoolTaskExecutor
)。请参阅此处的示例:https://docs.spring.io/spring-batch/4.0.x/reference/html/job.html#configuringJobLauncher
我做了这个 spring 批处理项目(csv 到数据库,经典)- 工作正常:https://github.com/Tyvain/Spring-Batch-Generic-Bulk
在一个单独的项目中,我用 vaadin 制作了一个应用程序,我可以在其中上传文件,效果很好: https://github.com/Tyvain/vaadin-simple-upload-file
-> 我们需要在上传文件时触发作业。
所以我将这 2 个项目重新组合到一个应用程序中,步骤如下:
- 禁用批处理:job.enabled:false(在 application.yml 中)
- 将所需的 vaadin 库添加到 pom
- 添加视图 (MainView.java)。
此修改的来源:https://github.com/Tyvain/Spring-Batch-Generic-Bulk/tree/include-vaadin-upload-page
此时,我仍然不确定如何启动作业,但我面临另一个问题:当我启动应用程序时,它停止了。在 vaadin 应用程序中保持运行的服务器不会在此处保持运行。
编辑: 当我从作业配置中删除这些注释时,服务器保持运行:
//@Configuration
//@EnableBatchProcessing
1/ 是否可以保持我的服务器 运行 spring-批量启用?
2/ 这是错误的做法吗?
解决方案有效:https://github.com/Tyvain/ProcessUploadedFile-Vaadin_SpringBatch
如果您想在上传文件后立即处理,spring-batch 不是正确的方法。我建议在使用@Async 和 CompletableFuture 上传后在后台线程中处理它,请在此处查看更多信息:
当您从 Web 服务器中 运行 一个 Spring 批处理作业时,您需要设置一个 JobLauncher
以便 运行 在后台异步执行您的作业。这里有详细解释:https://docs.spring.io/spring-batch/4.0.x/reference/html/job.html#runningJobsFromWebContainer
您需要使用异步 TaskExecutor
实现(例如 ThreadPoolTaskExecutor
)。请参阅此处的示例:https://docs.spring.io/spring-batch/4.0.x/reference/html/job.html#configuringJobLauncher