2011-01-05 12 views
0

Angenommen, ich habe einen Workflow, der in einem WCF-Dienst ausgeführt wurde, und wartet auf die Benutzereingabe für einen bestimmten Wert.Workflow 4 lang laufende Lesezeichen

Was ist der beste Ansatz, um dieses Szenario zu implementieren?

Ich habe gelesen, dass das Konzept des Lesezeichens für lang laufenden Workflow verwendet werden kann. Aber wird das Lesezeichen irgendwo gespeichert? Da die externe Eingabe sehr lange dauern kann, kann der Workflow wieder aufgenommen werden, wenn der WCF-Dienst heruntergefahren wird.

Was sind andere Optionen?

Antwort

3

Hosten Sie Ihren Workflow als Workflow-Service? Wenn dies der Fall ist, ist eine WCF-Operation ein Wrapper für ein Lesezeichen. Während Sie darauf warten, dass ein Lesezeichen Ihren Workflow wieder aufnimmt, kann es mithilfe des Instanzspeichers bei SQL Server beibehalten werden. Auf diese Weise verbraucht es keinen Speicher und Sie können IIS oder den gesamten Rechner neu starten.

Wenn Sie mit der WorklfowApplication selbst hosten, können Sie das gleiche mit dem Instanzenspeicher tun, außer dass Sie die Workflow-Instanzen neu starten und verwalten müssen.

+0

Danke, mein Szenario ist das zweite, hast du irgendwelche Artikel, Ressourcen dazu? – pdiddy

+1

Nicht von der Spitze meines Kopfes. Normalerweise rate ich jedoch dazu, die Workflow-Services-Route für lang laufende Workflows zu gehen. In Ihrem Fall wäre das einfach, da Sie bereits einen WCF-Dienst haben, können Sie einen Workflow-Dienst hinzufügen und eine lokale WCF-Verbindung verwenden, um mit dem Dienst zu kommunizieren. Es klingt vielleicht komplizierter als das Erstellen einer WorkflowApplication, aber Sie sparen viel Arbeit/Code beim Verwalten einzelner Workflow-Instanzen. – Maurice

Verwandte Themen