Instrukcje: Konfigurowanie zachowania bezczynności za pomocą elementu WorkflowServiceHost
Przepływy pracy idą bezczynnie, gdy napotkają zakładkę, która musi zostać wznowiona przez jakiś zewnętrzny stymulator, na przykład gdy wystąpienie przepływu pracy oczekuje na dostarczenie komunikatu Receive przy użyciu działania. WorkflowIdleBehavior jest zachowaniem, które umożliwia określenie czasu między upływem czasu bezczynności wystąpienia usługi a utrwalonego lub rozładowanego wystąpienia. Zawiera dwie właściwości, które umożliwiają ustawianie tych przedziałów czasu. TimeToPersist określa przedział czasu między okresem bezczynności wystąpienia usługi przepływu pracy a utrwalone wystąpienie usługi przepływu pracy. TimeToUnload Określa przedział czasu między okresem bezczynności wystąpienia usługi przepływu pracy a zwolnieniem wystąpienia usługi przepływu pracy, gdzie zwalnianie oznacza utrwalanie wystąpienia w magazynie wystąpień i usuwanie go z pamięci. W tym temacie opisano sposób konfigurowania elementu WorkflowIdleBehavior w pliku konfiguracji.
Aby skonfigurować element WorkflowIdleBehavior
<workflowIdle>
Dodaj element do<behavior>
elementu w elemecie<serviceBehaviors>
, jak pokazano w poniższym przykładzie.<behaviors> <serviceBehaviors> <behavior name=""> <workflowIdle timeToUnload="0:05:0" timeToPersist="0:04:0"/> </behavior> </serviceBehaviors> </behaviors>
Atrybut
timeToUnload
określa okres między czasem bezczynności wystąpienia usługi przepływu pracy a zwolnieniem usługi przepływu pracy. AtrybuttimeToPersist
określa okres między czasem, w których wystąpienie usługi przepływu pracy przechodzi w stanie bezczynności, a kiedy wystąpienie usługi przepływu pracy jest utrwalane. Wartość domyślna totimeToUnload
1 minuta. Wartość domyślna parametrutimeToPersist
to MaxValue. Jeśli chcesz zachować bezczynne wystąpienia w pamięci, ale zachować je w celu zapewnienia niezawodności, ustaw wartości tak,timeToPersist
<timeToUnload
aby . Jeśli chcesz zapobiec zwalnianiu bezczynnych wystąpień, ustaw wartośćtimeToUnload
MaxValue. Aby uzyskać więcej informacji na temat WorkflowIdleBehaviorprogramu , zobacz Temat Rozszerzalność hosta usługi przepływu pracyUwaga
Powyższy przykład konfiguracji używa uproszczonej konfiguracji. Aby uzyskać więcej informacji, zobacz Uproszczona konfiguracja.
Aby zmienić zachowanie bezczynności w kodzie
Poniższy przykład zmienia czas oczekiwania przed programowym utrwalaniem i zwalnianiem.
// 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)