2017-03-28 7 views
0

私は、JavaでSWFワークフロースタータークラスを作成しています。このクラスの目的は、WorkflowClientExternalFactoryを使用してgetClient()呼び出しを行い、次にWorkflowClientExternalを使用してワークフローを開始することです。ここでは基本的なレイアウトは次のとおりです。複数のSWFワークフローを開始するにはどうすればよいですか?

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を呼び出します。または、新しいクラスにメソッドを書く必要があります。これはリストのString入力を取り込み、MyWorkflowStarterに時間のリストを呼び出します。

これを行う方法に関するアイデアはありますか?どうもありがとう!

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

これはJavaかC#ですか?適切な言語にタグを付けて、より特定のユーザーにアプローチします。 –

+0

Java。既にタグ付けされています。ありがとう! – potbelly

答えて

0

SWFの観点からは、それほど問題はありません。ワークフローを開始するには、リストの各要素に対してgetClient()とclient.initを実行する必要があります。しかし、このコードの生存場所はあなた次第です。

+0

意味があります。ありがとう! MyWorkflowClientExternalFactory.getClient()が5回呼び出されるため、5つの要素があり、5つのワークフローが必要な場合は5つのMyWorkflowClientExternalクライアントが作成されます。あれは正しいですか? – potbelly

+0

はい、正しいです。各クライアントは、信号を送信したり、通信ワークフローの実行を取り消したりするために使用できます。 –

関連する問題