2017-03-28 6 views
0

Ich schreibe eine SWF Workflow Starter-Klasse in Java. Der Zweck der Klasse besteht darin, eine WorkflowClientExternalFactory zu verwenden, um einen getClient() -Aufruf auszuführen, und dann den WorkflowClientExternal zu verwenden, um meinen Workflow zu starten. Hier ist das Grundlayout:So starten Sie mehrere SWF-Workflows?

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; 
    } 
} 

Jetzt habe ich eine Liste von Strings und ich möchte eine Liste von Workflow starten, jeder Workflow wird in einem String, um seine Arbeit zu tun.

Meine Frage ist: nimmt die startMyWorkflow-fn in MyWorkflowStarter-Klasse in einer Liste von String, und verwenden Sie eine for-Schleife, jede Schleife generieren einen Client zum Aufruf von Init Fn; Oder sollte ich eine Methode in einer neuen Klasse schreiben, die eine Liste String-Eingaben aufnimmt, MyWorkflowStarter eine Liste von Häufigkeit aufrufen?

Irgendwelche Ideen, wie man das macht? Danke vielmals!

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

Ist das Java oder C#? Markieren Sie die richtige Sprache, um bestimmte Personen zu erreichen. –

+0

Java. Bereits taggen. Vielen Dank! – potbelly

Antwort

0

Aus der SWF-Sicht ist es nicht wirklich wichtig. Um einen Workflow zu starten, sollten getClient() und client.init für jedes Element der Liste ausgeführt werden. Aber wo dieser Code lebt, liegt an dir.

+0

Sinn machen. Vielen Dank! Um sicher zu sein - also, sagen wir, meine Liste der Eingabe hat 5 Elemente und ich möchte 5 Workflows, dann wird 5 MyWorkflowClientExternal Client erstellt, weil MyWorkflowClientExternalFactory.getClient() fünfmal aufgerufen wird. Ist das korrekt? – potbelly

+0

Ja, das stimmt. Jeder der Clients kann verwendet werden, um ein Signal zu senden oder seine entsprechende Workflow-Ausführung abzubrechen. –