Udostępnij za pośrednictwem


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

  1. <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. Atrybut timeToPersist 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 to timeToUnload 1 minuta. Wartość domyślna parametru timeToPersist 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<timeToUnloadaby . 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 pracy

    Uwaga

    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)
    

Zobacz też