WF4持久性很慢

时间:2012-04-17 18:44:24

标签: workflow-foundation-4

我目前有一个WCF工作流服务,有5000个实例空闲等待人工输入。当服务收到更新数据库的请求时,持久性需要5秒才能持久保存到数据库。如果我只有500个实例,则持续时间是timeToPersist = 0秒。反正有加速吗?

'<sqlWorkflowInstanceStore
    connectionStringName="Request"
    instanceCompletionAction="DeleteAll"
    instanceLockedExceptionAction="BasicRetry"
    instanceEncodingOption="GZip"
    hostLockRenewalPeriod="00:00:05"
    runnableInstancesDetectionPeriod="00:00:02"
/>
<workflowIdle
   timeToUnload="00:00:00"
   timeToPersist="00:00:00" />
<serviceThrottling maxConcurrentInstances="15"/>'

2 个答案:

答案 0 :(得分:1)

如果您在工作流程完成后删除了工作流程的实例,那么这可能是所需时间的一个原因。

这是使用属性

在工作流服务中完成的
<sqlWorkflowInstanceStore connectionStringName="SQLInstancing"
                          instanceCompletionAction="DeleteAll"/>

答案 1 :(得分:0)

注意这很容易加快这种情况发生。从数据库中检索数据并反序列化信息存在延迟。尽量保持物体尽可能小 您还可以尝试创建自己的持久性提供程序 - 例如,将数据保存在内存中而不是数据库中。您可以使用缓存引擎(如nCache)。
但是创建持久性提供程序很困难。

相关问题