Domanda

Abbiamo un appaltatore che ha sviluppato un sistema che utilizza la base del flusso di lavoro in .NET 3.5. Uno dei miei colleghi ha dubbi riguardo al servizio del flusso di lavoro che memorizza lo stato in memoria e che potrebbe non essere sincronizzato con il nostro database sottostante.

Le sue preoccupazioni sono giustificate?

È stato utile?

Soluzione

In che modo lo stato è memorizzato? WF ha un servizio di persistenza quando ad es. il flusso di lavoro passa allo stato inattivo. Puoi assicurarti che il file WF sia persistente nel tuo database. Non abbiamo problemi ad es. accodando le informazioni a un flusso di lavoro specifico per riavviare i tempi di esecuzione della WF: la WF verrà prelevata dal DB ed eseguita nella posizione corretta.

OK, rileggere ancora una volta si potrebbe significare che se si memorizza lo stato nel flusso di lavoro (ad esempio nelle proprietà di dipendenza di un'attività) che ciò potrebbe non essere sincronizzato. Dipende praticamente se può succedere o no. Un oggetto serializzato creato con dati DB potrebbe non essere sincronizzato in un WF se i dati originali fossero cambiati. Se questo è un problema, potresti preferire ricreare alcuni oggetti dai dati DB e non persisterli come oggetti serializzati nel tuo WF.

Altri suggerimenti

Dipende da come lo ha fatto, ma la risposta è probabilmente no. La memorizzazione nella memoria cache è un modo utile per evitare I / O non necessari quando è coinvolto un DB. Forse il tuo collega ha bisogno di dare un'occhiata al codice per sentirsi meglio.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top