Нужно ли настраивать постоянство и выгружать параметры явно при использовании SqlInstanceStore? - PullRequest
0 голосов
/ 24 марта 2011

У меня есть собственный сервис WF 4, использующий SqlWorkflowInstanceStore.Я настраиваю его следующим образом:

        var behavior = new SqlWorkflowInstanceStoreBehavior(connStr);
        TimeSpan detectionPeriod = behavior.RunnableInstancesDetectionPeriod;
        behavior.InstanceCompletionAction = InstanceCompletionAction.DeleteNothing;
        behavior.InstanceLockedExceptionAction = InstanceLockedExceptionAction.AggressiveRetry;
        behavior.InstanceEncodingOption = InstanceEncodingOption.None;
        host.Description.Behaviors.Add(behavior);

Далее в моем коде я явно добавляю поведение IdleBehavior на хост, чтобы обеспечить применение разгрузки.По сути, я не уверен, что делает SqlInstanceStore с точки зрения, в частности, выгрузки рабочих процессов.Управляет ли он этим сам или мне все еще нужно добавить свой IdleBehavior, например так:

        // Idle behaviour
        var idleBehavior = new WorkflowIdleBehavior();

        host.Description.Behaviors.Add(idleBehavior);

Заранее спасибо.

1 Ответ

2 голосов
/ 24 марта 2011

WorkflowIdleBehavior позволит WorkflowServiceHost автоматически сохранять / выгружать рабочие процессы, когда они не активны. Вам не нужно делать это, но это помогает с масштабируемостью. Даже без режима ожидания состояние рабочего процесса будет сохранено во время выполнения.

...