0

現在、人間の入力を待機している 5000 のインスタンスがアイドル状態の WCF ワークフロー サービスがあります。サービスがデータベースを更新する要求を受信すると、永続化がデータベースに永続化されるまでに 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

ワークフローの完了後にワークフローのインスタンスを削除する場合、これが時間がかかる原因の 1 つになる可能性があります。

これは、属性を使用してワークフロー サービスで行われます。

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

これを高速化するのは簡単ではありません
。データベースからデータを取得し、情報を逆シリアル化するための待ち時間があります。オブジェクトをできるだけ小さく保つように
してください。独自の持続性プロバイダーを作成することもできます。たとえば、データベースではなくメモリにデータを保持します。これには、nCache などのキャッシング エンジンを使用できます。
しかし、永続化プロバイダーを作成するのは困難です。

于 2012-04-20T22:05:05.053 に答える