我目前有一个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"/>'
答案 0 :(得分:1)
如果您在工作流程完成后删除了工作流程的实例,那么这可能是所需时间的一个原因。
这是使用属性
在工作流服务中完成的<sqlWorkflowInstanceStore connectionStringName="SQLInstancing"
instanceCompletionAction="DeleteAll"/>
答案 1 :(得分:0)
注意这很容易加快这种情况发生。从数据库中检索数据并反序列化信息存在延迟。尽量保持物体尽可能小
您还可以尝试创建自己的持久性提供程序 - 例如,将数据保存在内存中而不是数据库中。您可以使用缓存引擎(如nCache)。
但是创建持久性提供程序很困难。