Java - 在Quartz中创建工作流程

时间:2009-10-13 11:25:18

标签: java frameworks workflow quartz-scheduler

我正在考虑使用Quartz框架来安排数百个工作。

根据他们的API,可以安排作业在某些时刻运行,但不能一个接一个地运行(如果一个作业失败,则停止一系列作业)。 我能找到的唯一推荐方法是:

  • 使用监听器通知作业完成并安排下一个触发器触发(如何协调?)
  • 每个作业都会收到一个包含要运行的下一个作业的参数,并在完成实际工作后安排其运行。 (合作社)

您是否知道在Quartz中创建作业工作流程的更好方法?

您能否推荐其他方法/框架来实现Java中的工作流程?

编辑:与此同时,我发现了OSWorkflow这似乎是我所需要的一个很好的匹配。我需要实现的是“Sequence Pattern”。

4 个答案:

答案 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,可让您动态更新您的工作链,而不会中断您的应用程序。

enter image description here

相关问题