我正在考虑使用Quartz框架来安排数百个工作。
根据他们的API,可以安排作业在某些时刻运行,但不能一个接一个地运行(如果一个作业失败,则停止一系列作业)。 我能找到的唯一推荐方法是:
您是否知道在Quartz中创建作业工作流程的更好方法?
您能否推荐其他方法/框架来实现Java中的工作流程?
编辑:与此同时,我发现了OSWorkflow这似乎是我所需要的一个很好的匹配。我需要实现的是“Sequence Pattern”。
答案 0 :(得分:2)
当Quartz文档谈到“Job”时,它指的是一个实现“Job”接口的类,它实际上只是一个带有“execute”方法的类,它接受Quartz Context对象。在创建此实现时,您可以随心所欲地做任何事情。
您可以创建Quartz作业接口的实现,它只是简单地调用工作流中的所有作业,并在失败时抛出JobExecutionException异常。
答案 1 :(得分:1)
听起来我希望Quartz能够安排第一个工作,并将所有内容链接起来。
您是否考虑过使用Command Pattern封装每项任务,并将它们链接在一起?
答案 2 :(得分:0)
我参与了一个名为动态任务计划程序的项目,该项目使用Quartz执行作业链以容错方式实现简单工作流(以XML格式定义) )。
看看http://sourceforge.net/projects/dynatasksched/
该项目是测试版,但我认为它可以为您提供一些想法......
希望它有用!
答案 3 :(得分:0)
对于Quartz的作业链支持,您可能需要检查我参与的QuartzDesk项目。在2.0版中。我们添加了一个功能强大的job chaining engine,使您无需修改应用程序代码即可编排Quartz作业。
引擎负责将作业执行结果和其他参数从源作业传播到链式目标作业。
QuartzDesk附带一个GUI,可让您动态更新您的工作链,而不会中断您的应用程序。