0

我目前有一个 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"/>'
4

2 回答 2

1

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

这是使用属性在工作流服务中完成的

<sqlWorkflowInstanceStore connectionStringName="SQLInstancing"
                          instanceCompletionAction="DeleteAll"/>
于 2012-06-01T13:37:31.117 回答
0

请注意,加快速度很容易
从数据库中检索数据和反序列化信息存在延迟。尽量让你的对象尽可能小,
你也可以尝试创建自己的持久性提供程序——例如将数据保存在内存中而不是数据库中。您可以为此使用缓存引擎,例如 nCache。
但是很难创建持久性提供程序。

于 2012-04-20T22:05:05.053 回答