将作业配置上传到 Spring Batch Admin

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

一个有趣但没有通用良好解决方案的问题是:如何更改正在运行的 Spring 应用程序的配置?Spring Batch Admin 1.0.0.M3 最近发布,它有一个配置上传功能,以一种特殊的方式解决了这个问题。有人在最近的慕尼黑 S2GForum 上提出了这个功能(如果您错过了,请注册 5 月份在伦敦阿姆斯特丹的活动),我很乐意告诉他它已经存在了,所以也许它值得更多的时间来介绍...

基本用例的屏幕截图

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

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

配置视图 我们按下“上传”按钮,配置将被上传和解析,并且作业上传文件中的实例被注册以进行启动:上传后的作业视图

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

基本用例的变体

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

的简单 shell 脚本来自动化此过程)。

它是如何工作的?作业实现此用例的秘诀是ApplicationContext实例,这些实例按其文件名进行跟踪。 执行环境(JobLauncher, 事务管理器,DataSource等)由应用程序作为父上下文提供,并且作业都存在于该环境的子上下文中。 这意味着它们可以是易失的,并且它们的生命周期可以由应用程序中的服务管理。 有问题的服务恰好通过 Spring Integration 激活(以我在之前的帖子中描述的方式),通过服务激活器包装JobLoader,这是 Spring Batch 中的一个标准组件。

接下来是什么?

访问 Batch Admin 网站以获取更多信息,并找到获取代码进行体验的位置。 请记住五月份在伦敦阿姆斯特丹即将举行的 S2GForum 活动,Spring Batch 和 Spring Integration 的负责人(Dave Syer 和 Mark Fisher)将在一个会议中讨论和演示该应用程序。

获取 Spring 新闻通讯

通过 Spring 新闻通讯保持联系

订阅

抢先一步

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

了解更多

获取支持

Tanzu Spring 在一个简单的订阅中提供对 OpenJDK™、Spring 和 Apache Tomcat® 的支持和二进制文件。

了解更多

即将举行的活动

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

查看全部