【问题标题】:Java – Create a workflow in QuartzJava – 在 Quartz 中创建工作流
【发布时间】:2009-10-13 11:25:18
【问题描述】:

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

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

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

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

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

已编辑:与此同时,我发现 OSWorkflow 似乎很适合我的需要。看来我需要实现的是“Sequence Pattern”。

【问题讨论】:

    标签: java frameworks workflow quartz-scheduler


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      在我看来,您希望 Quartz 安排第一个作业,然后将所有内容都链接起来。

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

      【讨论】:

        【解决方案3】:

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

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

        希望有用!

        【讨论】:

          【解决方案4】:

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

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

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

          【讨论】:

            猜你喜欢
            • 2017-11-09
            • 1970-01-01
            • 2023-03-08
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2021-08-31
            • 2014-01-13
            相关资源
            最近更新 更多