Como: habilitar a persistência para fluxos de trabalho e serviços de fluxo de trabalho
Este tópico descreve como ativar persistência para fluxos de trabalho e serviços de fluxo de trabalho.
Ativar persistência para fluxos de trabalho
Você pode associar um armazenamento de instância com um WorkflowApplication usando a propriedade InstanceStore da classe WorkflowApplication. O método de Persist salva ou persiste um fluxo de trabalho no armazenamento de instância associada ao aplicativo. O método de Unload persiste um fluxo de trabalho no armazenamento de instância e então descarrega a instância de memória. O método de Carregar carrega um fluxo de trabalho na memória usando os dados de fluxo de trabalho armazenados no armazenamento de persistência de instância.
O método de Persistir executa as seguintes etapas:
Pausa o agendador de fluxo de trabalho e aguarda até que o fluxo de trabalho entre o estado ocioso.
Persiste ou salva o fluxo de trabalho no armazenamento de persistência.
Continua o agendador de fluxo de trabalho.
O método de Descarregar executa as seguintes etapas:
Pausa o agendador de fluxo de trabalho e aguarda até que o fluxo de trabalho entre o estado ocioso.
Persiste ou salva o fluxo de trabalho no armazenamento de persistência.
Descarte a instância de fluxo de trabalho na memória.
Os métodos de Persistir e Descarregar bloquearão quando um fluxo de trabalho está em uma zona sem persistir até que o fluxo de trabalho sai da zona sem persistir. O método continua com persistir ou descarrega a operação após a zona sem persistir completa. Se a zona sem persistir não concluir passa antes do tempo limite, ou se o processo de persistência leva muito longas, um TimeoutException será lançada.
Ativar persistência para serviços de fluxo de trabalho no código
O membro de DurableInstancingOptions da classe WorkflowServiceHost tem uma propriedade chamada InstanceStore que você pode usar para associar um armazenamento de instância com o WorkflowServiceHost.
// wsh is an instance of WorkflowServiceHost class
wsh.DurableInstancingOptions.InstanceStore = new SqlWorkflowInstanceStore();
Quando o WorkflowServiceHost é aberto, a persistência é automaticamente ativada se o DurableInstancingOptions.InstanceStore não é nulo.
Normalmente, um comportamento do serviço fornece o armazenamento concreto de instância para ser usado com um host serviço de fluxo de trabalho usando a propriedade InstanceStore. Por exemplo, o SqlWorkflowInstanceStoreBehavior cria uma instância de SqlWorkflowInstanceStore, configurá-lo, e atribuí-lo a DurableInstancingOptions.InstanceStore.
Ativar persistência para serviços de fluxo de trabalho usando um arquivo de configuração do aplicativo
Persistência pode ser ativada usando um arquivo de configuração do aplicativo adicionando o seguinte código ao seu arquivo app.config ou web.config:
<configuration>
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior name="myBehavior">
<sqlWorkflowInstanceStore connectionString="Data Source=myDatabaseServer;Initial Catalog=myPersistenceDatabase" />
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
</configuration>
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de