2012-04-17 55 views
0

我目前有一個WCF工作流服務,有5000個實例閒置等待人工輸入。當服務接收到更新數據庫的請求時,持久性需要5秒鐘才能持久化到數據庫。如果我只有500個實例,持續時間是按照timeToPersist = 0秒的瞬間。無論如何加快這一點?WF4持久性很慢

'<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

很容易記,以加快這
有等待時間從數據庫中檢索數據和反序列化的信息。儘量保持對象儘可能小
您還可以嘗試創建自己的持久性提供者 - 例如將數據保存在內存中而不是數據庫中。你可以使用緩存引擎,如nCache。
但創建持久性提供者很困難。

1

如果在工作流完成後刪除工作流實例,那麼這可能是需要時間的一個原因。

這是在工作流服務使用屬性

<sqlWorkflowInstanceStore connectionStringName="SQLInstancing" 
          instanceCompletionAction="DeleteAll"/> 
完成