Anvisningar: Konfigurera inaktivt beteende med WorkflowServiceHost
Arbetsflöden går inaktiva när de stöter på ett bokmärke som måste återupptas av vissa externa stimulanser, till exempel när arbetsflödesinstansen väntar på att ett meddelande ska levereras med hjälp av en Receive aktivitet. WorkflowIdleBehavior är ett beteende som gör att du kan ange tiden mellan när en tjänstinstans blir inaktiv och när instansen sparas eller tas bort. Den innehåller två egenskaper som gör att du kan ange dessa tidsintervall. TimeToPersist anger tidsintervallet mellan när en arbetsflödestjänstinstans blir inaktiv och när instansen av arbetsflödestjänsten sparas. TimeToUnload anger tidsintervallet mellan när en arbetsflödestjänstinstans blir inaktiv och när instansen av arbetsflödestjänsten tas bort, där avlastning innebär att instansen sparas i instansarkivet och tas bort från minnet. I det här avsnittet beskrivs hur du konfigurerar WorkflowIdleBehavior i en konfigurationsfil.
Så här konfigurerar du WorkflowIdleBehavior
Lägg till ett <>
workflowIdle
element i elementetbehavior
><i elementet <serviceBehaviors
> enligt följande exempel.<behaviors> <serviceBehaviors> <behavior name=""> <workflowIdle timeToUnload="0:05:0" timeToPersist="0:04:0"/> </behavior> </serviceBehaviors> </behaviors>
Attributet
timeToUnload
anger tidsperioden mellan när en instans av arbetsflödestjänsten blir inaktiv och när arbetsflödestjänsten tas bort. AttributettimeToPersist
anger tidsperioden mellan när en instans av arbetsflödestjänsten blir inaktiv och när instansen av arbetsflödestjänsten sparas. Standardvärdet förtimeToUnload
är 1 minut. Standardvärdet förtimeToPersist
är MaxValue. Om du vill behålla inaktiva instanser i minnet men bevara dem för robusthet anger du värden så atttimeToPersist
<timeToUnload
. Om du vill förhindra att inaktiva instanser tas bort anger dutimeToUnload
till MaxValue. Mer information om WorkflowIdleBehaviorfinns i Utökningsbarhet för arbetsflödestjänstvärdKommentar
Föregående konfigurationsexempel använder förenklad konfiguration. Mer information finns i Förenklad konfiguration.
Så här ändrar du inaktivt beteende i kod
I följande exempel ändras väntetiden innan den sparas och tas bort programmatiskt.
// 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. alteredBehavior.TimeToPersist = new TimeSpan(0, 4, 0); alteredBehavior.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)