Udostępnij za pośrednictwem


Instrukcje: włączanie trwałości przepływów pracy i usług przepływu pracy

W tym artykule opisano sposób włączania trwałości przepływów pracy i usług przepływu pracy.

Włączanie trwałości przepływów pracy

Magazyn wystąpień można skojarzyć z aplikacją WorkflowApplication przy użyciu InstanceStore właściwości WorkflowApplication klasy . Metoda Persist zapisuje lub utrwala przepływ pracy w magazynie wystąpień skojarzonym z aplikacją. Metoda Unload utrwala przepływ pracy w magazynie wystąpień, a następnie zwalnia wystąpienie z pamięci. Metoda Load ładuje przepływ pracy do pamięci przy użyciu danych przepływu pracy przechowywanych w magazynie trwałości wystąpienia.

Metoda Persist wykonuje następujące kroki:

  1. Wstrzymuje harmonogram przepływu pracy i czeka, aż przepływ pracy wejdzie w stan bezczynności.
  2. Utrwala lub zapisuje przepływ pracy w magazynie trwałości.
  3. Wznawia harmonogram przepływu pracy.

Metoda Unload wykonuje następujące kroki:

  1. Wstrzymuje harmonogram przepływu pracy i czeka, aż przepływ pracy wejdzie w stan bezczynności.
  2. Utrwala lub zapisuje przepływ pracy w magazynie trwałości.
  3. Usuwa wystąpienie przepływu pracy w pamięci.

Zarówno metody Utrwalanie, jak i Zwalnianie będą blokowane, gdy przepływ pracy znajduje się w strefie bez utrwalonej, dopóki przepływ pracy nie opuści strefy bez trwałości. Metoda kontynuuje operację utrwalania lub zwalniania po zakończeniu bez utrwalonej strefy. Jeśli strefa nietrwała nie zostanie ukończona przed upływem limitu czasu lub jeśli proces trwałości trwa zbyt długo, TimeoutException zostanie zgłoszony błąd.

Włączanie trwałości w kodzie

Element członkowski WorkflowServiceHost DurableInstancingOptions klasy ma właściwość o nazwie InstanceStore, której można użyć do skojarzenia magazynu wystąpień z elementem WorkflowServiceHost.

// wsh is an instance of WorkflowServiceHost class
wsh.DurableInstancingOptions.InstanceStore = new SqlWorkflowInstanceStore();

Po otwarciu elementu WorkflowServiceHost trwałość jest automatycznie włączona, jeśli parametr DurableInstancingOptions.InstanceStore nie ma wartości null.

Zazwyczaj zachowanie usługi zapewnia konkretny magazyn wystąpień, który ma być używany z hostem usługi przepływu pracy przy użyciu właściwości InstanceStore . Na przykład SqlWorkflowInstanceStoreBehavior tworzy wystąpienie klasy SqlWorkflowInstanceStore, konfiguruje je i przypisuje je do rozszerzenia DurableInstancingOptions.InstanceStore.

Włączanie trwałości przy użyciu pliku konfiguracji aplikacji

Trwałość można włączyć przy użyciu pliku konfiguracji aplikacji, dodając następujący kod do pliku app.config lub web.config:

<configuration>
  <system.serviceModel>
    <behaviors>
      <serviceBehaviors>
        <behavior name="myBehavior">
          <sqlWorkflowInstanceStore connectionString="Data Source=myDatabaseServer;Initial Catalog=myPersistenceDatabase" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
  </system.serviceModel>
</configuration>

Ważne

Firma Microsoft zaleca korzystanie z najbezpieczniejszego dostępnego przepływu uwierzytelniania. Jeśli łączysz się z usługą Azure SQL, tożsamości zarządzane dla zasobów platformy Azure to zalecana metoda uwierzytelniania.