Pergunta

Temos um empreiteiro que desenvolveu um sistema que usa o Workflow Foundation no .NET 3.5. Um dos meus colegas tem preocupações "em torno do serviço de fluxo de trabalho de armazenamento de estado na memória e possivelmente tornar-se fora de sincronia com o nosso banco de dados subjacente".
São suas preocupações justificadas?

Foi útil?

Solução

De que forma é estado armazenado na memória? WF tem um serviço de persistência por exemplo quando o fluxo de trabalho vai para o estado ocioso. Você pode garantir que o WF é mantido para o seu banco de dados. Não temos problemas em por exemplo enqueuing informações para um fluxo de trabalho específico para tempos de execução do WF reiniciado -. a WF será pego do DB e executado na posição correta

OK, reler mais uma vez que você poderia significar que se você armazenar o estado do fluxo de trabalho (por exemplo, nas propriedades dependeny de uma atividade) que isso poderia tornar-se fora de sincronia. Que praticamente depende se é OK para acontecer ou não. Um objeto serializado que foi criada com dados DB poderia estar fora de sincronia em uma WF se os dados originais alteradas. Se esta é uma preocupação que você pode sim deseja recriar certos objetos a partir de dados DB e não persistem-los como objetos serializados em seu WF.

Outras dicas

Depende de como ele fez isso, mas a resposta é provavelmente não. cache de memória é uma forma útil para evitar desnecessários I / O, quando um DB está envolvido. Talvez suas necessidades colega para ter um olhar através do código para fazer-se sentir melhor.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top