1

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

4

2 回答 2

2

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

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

于 2009-10-21T11:12:31.220 回答
0

这取决于他是如何做到的,但答案可能是否定的。当涉及数据库时,内存缓存是一种避免不必要 I/O 的有用方法。也许您的同事需要查看代码以使自己感觉更好。

于 2009-10-21T11:10:54.373 回答