Pregunta

Tenemos un contratista que ha desarrollado un sistema que utiliza la base de flujo de trabajo en .NET 3.5. Uno de mis colegas está preocupado por el estado de almacenamiento del servicio de flujo de trabajo en la memoria y posiblemente no esté sincronizado con nuestra base de datos subyacente " ;.
¿Están sus preocupaciones justificadas?

¿Fue útil?

Solución

¿De qué manera se almacena el estado en la memoria? WF tiene un servicio de persistencia cuando, por ejemplo, el flujo de trabajo pasa al estado inactivo. Puede asegurarse de que WF persista en su base de datos. No tenemos problemas en, por ejemplo. encolando información a un flujo de trabajo específico para reiniciar los tiempos de ejecución de WF: el WF se recogerá de la base de datos y se ejecutará en la posición correcta.

está bien, al volver a leer una vez más, podría significar que si almacena el estado en el flujo de trabajo (por ejemplo, en las propiedades dependientes de una actividad) esto podría desincronizarse. Eso depende mucho de si está bien que suceda o no. Un objeto serializado que se creó con datos de base de datos podría no estar sincronizado en una WF si los datos originales cambiaran. Si esta es una preocupación, quizás prefiera recrear ciertos objetos a partir de datos de la base de datos y no conservarlos como objetos serializados en su WF.

Otros consejos

Depende de cómo lo haya hecho, pero la respuesta es probablemente no. El almacenamiento en memoria caché es una forma útil de evitar E / S innecesarias cuando se trata de una base de datos. Quizás su colega necesite revisar el código para sentirse mejor.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top