2

关于 Sprint Batch Admin 的新手问题。

我的要求是用户应该能够通过 Web UI 安排新作业(为作业功能传递一些参数)。这些作业应该是持久的、重复的并且可以被取消或删除。此外,可以为上次运行的作业生成报告,并列出所有现有作业及其下一次运行日期。

也许我最重要的要求是这应该可以“即时”进行,而不需要重新部署 Web 应用程序或重新启动服务器。

这可以使用 Spring Batch Admin 来完成吗(我看到该指南谈到上传 XML 以添加作业,但这似乎很乏味,如果有 API 为什么我们不能通过批处理动态创建作业管理员网络用户界面)?或者 JDK Timer 或 Quartz 是否支持它?

4

3 回答 3

1

作业一旦创建,就无法删除,但可以停止。允许从 DB 中删除是一个有风险的操作,因为 Spring Batch 可能已经开始执行作业,但 DB 尚未更新。如果此时删除该工作,则您有不一致的地方。

启动作业中描述了调度新作业。不可能创建新类型的作业,因为作业通常具有复杂的配置,在加载 Spring Context 时仅解析一次。

于 2012-04-06T11:49:07.777 回答
1

作业和配置的动态部署(即时),无需重新启动服务器,是我们在 Trooper Batch Profile 中实现的功能 - 它不完全是 Spring Batch 管理,而是建立在它之上。您继续使用 Spring 批处理编写您的作业,只是在 Trooper 中更改了容器,您将使用它的批处理配置文件运行时。屏幕截图和功能在这里:https ://github.com/regunathb/Trooper/wiki/Writing-Batch-jobs-in-Trooper

于 2013-02-12T10:32:35.243 回答
0

我认为我们可以通过 SBA 部署每个春季批处理作业。我的意思是每个批处理作业都将被编译为一个战争文件。我们将它们一起部署在服务器中。这样,我们就有了以下访问url来监控每个jobs:

http://bactchjobserver/job1

http://bactchjobserver/job2

http://bactchjobserver/job3

http://bactchjobserver/job4

但缺点是每个 war 填充肯定包含 lib 文件,这使得每个 war 文件大小为 10MB。

同时,我尝试手动将new-job.xml添加到war-file\WEB-INF\classes\META-INF\spring\batch\jobs,将new-job.jar添加到war-file\WEB-INF \lib 而不停止 JBoss。有用。新作业可以显示在 SBA UI 中并且可以运行。

但显然这会导致大量的维护和故障排除。它是不可实现的。

于 2015-04-09T04:07:12.063 回答