工作流基金会在记忆中存储状态是一个问题吗?

时间:2009-10-21 11:06:39

标签: c# .net workflow-foundation in-memory

我们有一个承包商,他开发了一个使用.NET 3.5中的工作流基础的系统。我的一位同事关注“工作流服务存储在内存中的状态,它可能与我们的底层数据库不同步” 他的担忧是否合理?

2 个答案:

答案 0 :(得分:2)

状态存储在内存中的方式是什么?例如,WF具有持久性服务。工作流程进入空闲状态。您可以确保将WF持久保存到数据库中。我们没有问题,例如将信息排入特定工作流程以重新启动WF运行时 - WF将从数据库中获取并在正确的位置执行。

行, 再次重读你可能意味着如果你在工作流中存储状态(例如在活动的依赖属性中),这可能会变得不同步。这几乎取决于是否可以发生。如果原始数据发生更改,使用DB数据创建的序列化对象可能在WF中不同步。如果这是一个问题,您可能更愿意从DB数据中重新创建某些对象,而不是将它们作为序列化对象保留在WF中。

答案 1 :(得分:0)

这取决于他是如何做到的,但答案可能是否定的。内存缓存是避免在涉及DB时不必要的I / O的有用方法。也许你的同事需要仔细查看代码才能让自己感觉更好。