【问题标题】:How to Start Multiple SWF Workflows?如何启动多个 SWF 工作流程?
【发布时间】:2017-03-28 18:21:27
【问题描述】:

我正在用 Java 编写一个 SWF Workflow Starter 类。该类的目的是使用 WorkflowClientExternalFactory 进行 getClient() 调用,然后使用 WorkflowClientExternal 启动我的工作流。这是基本布局:

public class MyWorkflowStarter {
    private final MyWorkflowClientExternalFactory factory;

    public MyWorkflowStarter(MyWorkflowClientExternalFactory factory) {
        this.factory = factory;
    }

    public void startyMyWorkflow (String input) {
        final MyWorkflowClientExternal client = this.factory.getClient();
        client.init(String input);  // init() is a @Execute method in the workflow;
    }
}

现在我有一个字符串列表,我想启动一个工作流列表,每个工作流都会接受一个字符串来完成它的工作。

我的问题是:MyWorkflowStarter 类中的 startMyWorkflow-fn 是否接受 String 列表,并使用 for 循环,每个循环生成一个客户端调用 init fn;或者我应该在一个新类中编写一个方法,该方法将接收一个列表字符串输入,调用 MyWorkflowStarter 的次数列表?

关于如何做到这一点的任何想法?非常感谢!

// Alternatively I could have a workflow and a list of activities, but I want the option of starting a list workflows. 

【问题讨论】:

  • 这是 Java 还是 C#?标记正确的语言以覆盖更具体的人。
  • Java。已经标记了。谢谢!

标签: java amazon-swf


【解决方案1】:

从 SWF 的角度来看,这并不重要。要启动工作流 getClient() 和 client.init 应该为列表的每个元素执行。但这段代码的位置取决于您。

【讨论】:

  • 有道理。谢谢!可以肯定的是 - 所以,假设我的输入列表有 5 个元素,我想要 5 个工作流,然后将创建 5 个 MyWorkflowClientExternal 客户端,因为 MyWorkflowClientExternalFactory.getClient() 将被调用五次。对吗?
  • 是的,没错。每个客户端都可用于发送信号或取消其对应的工作流执行。
猜你喜欢
  • 2017-10-09
  • 1970-01-01
  • 2019-06-25
  • 2016-06-19
  • 1970-01-01
  • 2013-01-02
  • 2021-05-12
  • 1970-01-01
  • 2017-04-08
相关资源
最近更新 更多