6

我正在考虑使用Quartz框架来安排数百个作业的运行。

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

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

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

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

已编辑:与此同时,我发现了OSWorkflow,这似乎很适合我的需要。看来我需要实现的是“序列模式”。

4

4 回答 4

2

当 Quartz 文档谈到“Job”时,它指的是一个实现“Job”接口的类,它实际上就是任何具有“execute”方法的类,它接受 Quartz Context 对象。在创建这个实现时,你真的可以做任何你想做的事情。

你可以创建一个 Quartz Job Interface 的实现,它简单地依次调用工作流中的所有作业,并在失败时抛出 JobExecutionException 异常。

于 2009-10-13T14:01:18.177 回答
1

在我看来,您希望 Quartz 安排一份工作,并将所有事情都与它联系起来。

您是否考虑过使用命令模式封装每个任务,并将它们链接在一起?

于 2009-10-13T11:47:44.970 回答
0

我参与了一个名为Dynamic Task Scheduler的项目,该项目使用 Quartz 执行作业链,以容错方式(以 XML 格式定义)实现简单的工作流。

看看http://sourceforge.net/projects/dynatasksched/
该项目是测试版,但我认为它可以给你一些想法开始..

希望它有用!

于 2013-06-20T11:33:53.050 回答
0

对于 Quartz 的作业链支持,您可能需要查看我参与的QuartzDesk项目。在 2.0 版中。我们添加了一个强大的作业链引擎,使您能够编排您的 Quartz 作业,而无需修改您的应用程序代码。

引擎负责将作业执行结果和其他参数从源作业传播到链接的目标作业。

QuartzDesk 带有一个 GUI,允许您在不中断应用程序的情况下动态更新您的工作链。

在此处输入图像描述

于 2015-07-22T13:28:34.307 回答