首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有javax.批/jsr352 352的独占批处理作业

带有javax.批/jsr352 352的独占批处理作业
EN

Stack Overflow用户
提问于 2015-04-27 14:58:29
回答 1查看 368关注 0票数 0

我们有一个应用程序,它可以进行大量的导入和导出--基本上是在CSV文件和数据库表之间。

由于各种原因(比如“遗留代码”),一些导入和导出是相互冲突的(不能同时执行它们)。

我们在调查javax.batch。从概念上讲,它非常适合。但我们真正没有发现的是,我们有可能在某种程度上管理我们想要运行的某些工作的“排他性”。

有人能在上面提供一个指针吗?如何使用javax.batch实现独占批处理作业?或者我们应该为此实现我们自己的JobOperator

更新

我所说的“排他性”,是指定义某些工作不能并行执行的能力。在最简单的情况下,这意味着“一次只执行一个任务”。在更复杂的情况下,更复杂的逻辑,如“A类型的作业不能与A或B类型的其他作业一起运行,但C是可以的”。例如,“作业类型”是jobXmlName 这里 (不管作业参数如何)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-27 21:21:11

JSR-352 (和Spring )都故意避免了编排的主题。要做到这一点,就需要一种特殊的方法,以防止这些批处理框架提供固有的灵活性。因此,JSR-352中的JobOperator没有阻止一个作业运行而另一个作业正在运行的概念。

虽然您可以通过您自己的自定义JobOperator来完成这一任务,但我不推荐这种方法。相反,最好将这一层移到调用JobOperator的人中,以便将该类型的业务流程关系的逻辑与启动作业的实现细节分开。例如,如果您使用调度程序启动作业,我会将逻辑放在那里,说明哪些作业可以并行运行,哪些作业可以在自定义cannot...not中运行。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29899195

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档