Postupy: Konfigurace chování při nečinnosti pomocí WorkflowServiceHost
Pracovní postupy se nečiní, když narazí na záložku, která musí být obnovena některými externími podněty, například když instance pracovního postupu čeká na doručení zprávy pomocí Receive aktivity. WorkflowIdleBehavior je chování, které umožňuje určit dobu mezi tím, kdy instance služby přestane být nečinná a kdy je instance trvale uložena nebo uvolněna. Obsahuje dvě vlastnosti, které umožňují nastavit tato časová období. TimeToPersist určuje časové rozpětí mezi tím, kdy instance služby pracovního postupu přestane být nečinná a kdy je instance služby pracovního postupu trvalá. TimeToUnload určuje časové rozpětí mezi tím, kdy instance služby pracovního postupu přestane být nečinná, a když je instance služby pracovního postupu uvolněna, kde uvolnění znamená zachování instance do úložiště instancí a jeho odebrání z paměti. Toto téma vysvětluje, jak nakonfigurovat WorkflowIdleBehavior konfigurační soubor.
Konfigurace WorkflowIdleBehavior
<workflowIdle>
Přidejte prvek do elementu uvnitř elementu<behavior>
<serviceBehaviors>
, jak je znázorněno v následujícím příkladu.<behaviors> <serviceBehaviors> <behavior name=""> <workflowIdle timeToUnload="0:05:0" timeToPersist="0:04:0"/> </behavior> </serviceBehaviors> </behaviors>
Atribut
timeToUnload
určuje časové období mezi okamžikem, kdy instance služby pracovního postupu přestane být nečinná a kdy je služba pracovního postupu uvolněna. AtributtimeToPersist
určuje časové období mezi tím, kdy instance služby pracovního postupu přestane být nečinná a kdy je instance služby pracovního postupu trvalá. Výchozí hodnota jetimeToUnload
1 minuta. Výchozí hodnota jetimeToPersist
MaxValue. Pokud chcete zachovat nečinné instance v paměti, ale zachovat je pro odolnost, nastavte hodnoty tak, abytimeToPersist
<timeToUnload
. Pokud chcete zabránit uvolnění nečinných instancí, nastavte na hodnotutimeToUnload
MaxValue. Další informace o WorkflowIdleBehaviornaleznete v části Rozšíření hostitele služby pracovního postupu.Poznámka:
Předchozí ukázka konfigurace používá zjednodušenou konfiguraci. Další informace naleznete v tématu Zjednodušená konfigurace.
Změna chování nečinnosti v kódu
Následující příklad změní dobu čekání před zachováním a uvolněním programově.
// Code to create a WorkFlowServiceHost is not shown here. // Note that SqlWorkflowInstanceStore is in the System.Activities.DurableInstancing.dll. host.DurableInstancingOptions.InstanceStore = new SqlWorkflowInstanceStore(connectionString); WorkflowIdleBehavior alteredBehavior = new WorkflowIdleBehavior { // Alter the time to persist and unload. TimeToPersist = new TimeSpan(0, 4, 0), TimeToUnload = new TimeSpan(0, 5, 0) }; //Remove the existing behavior and replace it with the new one. host.Description.Behaviors.Remove<WorkflowIdleBehavior>(); host.Description.Behaviors.Add(alteredBehavior);
' Code to create a WorkflowServiceHost not shown here. ' Note that SqlWorkflowInstanceStore is in the System.Activities.DurableInstancing.dll host.DurableInstancingOptions.InstanceStore = New SqlWorkflowInstanceStore(connectionString) ' Create a new workflow behavior. Dim alteredBehavior As WorkflowIdleBehavior = New WorkflowIdleBehavior() ' Alter the time to persist and unload. alteredBehavior.TimeToPersist = New TimeSpan(0, 4, 0) alteredBehavior.TimeToUnload = New TimeSpan(0, 5, 0) ' Remove the existing behavior and add the new one. host.Description.Behaviors.Remove(Of WorkflowIdleBehavior)() host.Description.Behaviors.Add(alteredBehavior)