关于Sprint Batch Admin的新手问题。
我的要求是用户应该能够通过Web UI安排新作业(为作业功能传递一些参数)。这些工作应该是持久的,重复性的,可以取消或删除。此外,可以为上次运行的作业生成报告,并列出所有现有作业及其下一个运行日期。
也许我最重要的要求是,这应该是“即时”,不需要重新部署网络应用程序或重新启动服务器。
可以使用Spring Batch Admin完成吗(我看到该指南讨论了上传XML以添加作业但这看起来很乏味,如果有API,我们为什么不能动态创建作业通过批处理管理Web UI)?或者JDK Timer或Quartz是否支持它?
答案 0 :(得分:1)
创建作业后,无法删除该作业,但can be stopped。允许从DB中删除是一项危险的操作,因为Spring Batch可能已经启动了作业执行,但是DB尚未更新。如果此时删除了作业,则表示存在不一致。
Launch Job中描述了安排新作业。创建新类型的作业是不可能的,因为作业通常具有复杂的配置,只有在加载Spring Context时才会解析一次。
答案 1 :(得分:1)
动态部署(动态)作业和配置,无需重启服务器,这是我们在Trooper Batch Profile中实现的一项功能 - 它不是Spring Batch管理员,而是建立在它之上。您继续使用Spring批处理编写作业,只需在Trooper中更改容器,您将使用其批处理配置文件运行时。屏幕截图和功能如下:https://github.com/regunathb/Trooper/wiki/Writing-Batch-jobs-in-Trooper
答案 2 :(得分:0)
我认为我们可以通过SBA部署每个Spring批处理作业。我的意思是每个批处理作业都将编译为war文件。我们在服务器中一起部署它们。通过这种方式,我们有以下访问网址来监控每个工作:
h t t p:// bactchjobserver / job1
h t t p:// bactchjobserver / job2
h t t p:// bactchjobserver / job3
h t t p:// bactchjobserver / job4
但缺点是每个战争填充肯定包含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中显示并且可以运行。
但显然这会导致很多维护和故障排除。这是不可实现的。