将作业配置上传到 Spring Batch Admin

工程 | Dave Syer | 2010年4月8日 | ...

一个有趣的、没有普遍良好解决方案的问题是:我如何更改正在运行的 Spring 应用程序的配置?最近发布的 Spring Batch Admin 1.0.0.M3 具有一项配置上传功能,以一种特殊的方式解决了这个问题。在最近慕尼黑的 S2GForum 上有人询问了此功能(如果您错过了,请注册参加五月份在伦敦阿姆斯特丹举行的活动),我很高兴地告诉他此功能已存在,因此也许值得多花点时间介绍一下……

基本用例的屏幕截图

上传前的作业视图 我们首先看一下应用程序中的作业视图。它显示了 Web 应用程序可以启动或监视的作业列表。

现在计划上传一个新的作业配置并查看此视图的变化。因此,我们从顶部导航中的“文件”菜单开始,然后单击“配置”。这将显示一个用于上传文件的简单表单。如果指向 Spring XML 配置文件,视图将如下所示:

Configuration View 我们按下“上传”按钮,配置将被上传并解析,然后作业上传文件中的实例将被注册以便启动:Jobs View After Upload

您可以在作业注册表中看到一个新条目(“test-job”),该条目是可在此进程中启动的,因为应用程序引用了作业。 (未启动的作业在进程外执行,但使用了相同的数据库来存储其JobRepository,因此它们及其执行情况会显示在 UI 中。)

基本用例的变体

基本上传用例的一个常见变体是上传现有作业配置的修改,而不是全新的配置。这很常见,因为人们通常需要调整运行时参数,尤其是在进行性能测试时。例如,我们可以更改其中一个Step中的 commit-interval,在作业中,以便在重复的项目处理过程中将更多(或更少)的项目分组并一起提交Step。这可能会影响性能,并且由于更有效地利用了事务资源,因此作业可能会运行得更快。我们可以通过在此应用程序中启动作业并检查结果来直接衡量和验证这一点(因为 Web 界面是面向资源的,因此也可以使用基于curl).

它是如何工作的?

此用例实现的秘密在于,作业配置文件的解析方式是将其分解为单独的 SpringApplicationContext实例,这些实例由其文件名跟踪。执行环境(JobLauncher、事务管理器、DataSource等)由应用程序作为父上下文提供,而Jobs则全部位于该环境的子上下文中。这意味着它们可以是易失的,并且它们的生命周期可以由应用程序中的服务管理。相关服务恰好通过包装了JobLoader是 Spring Batch 的标准组件。

下一步是什么?

请访问 Batch Admin 网站获取更多信息,并了解在哪里获取代码进行试验。请记住即将于 5 月在 伦敦阿姆斯特丹举行的 S2GForum 活动,届时 Spring Batch 和 Spring Integration 的负责人(Dave Syer 和 Mark Fisher)将在一个会议中讨论和演示该应用程序。

获取 Spring 新闻通讯

通过 Spring 新闻通讯保持联系

订阅

领先一步

VMware 提供培训和认证,助您加速进步。

了解更多

获得支持

Tanzu Spring 提供 OpenJDK™、Spring 和 Apache Tomcat® 的支持和二进制文件,只需一份简单的订阅。

了解更多

即将举行的活动

查看 Spring 社区所有即将举行的活动。

查看所有