2012-04-06 124 views
2

Sprint批处理管理员的新手问题。Spring批处理管理员:通过Web GUI安排新作业

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

也许是我最重要的要求是,这应该是可能的“对飞”,不需要重新部署Web的应用程序或服务器重新启动。

这可以使用Spring批处理管理器(我看到指南中提到上传XML用于添加作业,但这看起来很乏味,如果有API,为什么我们不应该能够在通过批量管理Web UI)?或者JDK Timer或Quartz支持它?

回答

1

一旦作业已经创建,它不能被删除,但它can be stopped。允许从数据库中删除是一项风险很大的操作,因为Spring Batch可能已经启动了作业执行,但数据库尚未更新。如果在这个时候删除了这个工作,你就会有不一致的地方。

安排一项新工作在Launch Job中描述。创建新类型的作业是不可能的,因为作业通常可能具有复杂的配置,当加载Spring上下文时该配置仅被解析一次。就业和配置

+0

谢谢。我想确定是否可以通过Web GUI调度作业,以及是否使用Spring Batch或JDK Timer或Quartz Scheduler支持。到目前为止,我已经看到,在网络应用程序中,所有这些预期的工作将被“配置”,并且需要“重新部署”web应用程序,而不是“即时”添加工作。 – dchucks 2012-04-06 12:43:56

+1

可以安排(=启动)新的工作实例。它将由任务执行器运行,它可以是异步的(你应该在Spring配置中定义它)。Quartz用于按计划运行作业,通常不需要Spring Admin控制台来运行它们,但可能会看到执行结果。应该事先配置应该对数据做什么(读,块,修改,写),但实际数据(文件,URL,无论)可以通过参数传递。当然可以使用参数来调整处理本身,解释参数含义是工作任务。 – 2012-04-06 18:20:10

+0

再次感谢!您的回答现在可以帮助我理解,最终我们需要Quartz或Cron按照计划运行这些作业,并使用Spring Batch来处理实际的执行过程。你知道我们是否可以通过Quartz的图形用户界面安排工作吗?到目前为止,我明白你仍然需要使用属性文件进行预配置。 – dchucks 2012-04-07 08:48:55

1

动态部署(飞),而不需要重新启动服务器,是我们在骑兵批档案实现了一个功能 - 这不正是Spring Batch的管理员,但建立在它。您继续使用Spring批处理编写作业,只需在Trooper中更改容器,即可使用其批处理文件运行时。屏幕截图和功能都在这里:https://github.com/regunathb/Trooper/wiki/Writing-Batch-jobs-in-Trooper

0

我认为我们可以通过SBA部署每年春季批处理作业。我的意思是每个批处理作业都将被编译为一个war文件。我们一起在服务器上部署它们。通过这种方式,我们有以下来访的网址,以便监控每个工作:

的http:// bactchjobserver/JOB1

的http:// bactchjobserver /作业2

的http:// bactchjobserver /作业3

HTTP:// bactchjobserver /作业4

但不足之处是,每个战争填充肯定包含LIB文件,这使得像10MB大小的每个war文件。同时,我尝试手动添加war-file \ WEB-INF \ classes \ META-INF \ spring \ batch \ jobs和new-job.jar到war-file中的new-job.xml文件\ WEB-INF \ lib而不停止JBoss。有用。新工作可以在SBA UI中显示并可运行。

但显然这会导致很多维护和故障排除。这是不可实施的。