Как использовать корреляцию в WF4 StateFlow (обновление платформы 1)

У меня есть служба WF (CustomerProvisioningService), которая получает сообщение запроса и сразу запускает StateFlow (CustomerProvisioningStateFlow) и помечается как CanCreateInstance.

Первое состояние в потоке имеет последовательный поток в качестве своей операции Entry, который представляет собой длительный рабочий поток с собственным шаблоном Send и ReceiveReply для вызова и получения дополнительной информации (ProvisionCustomerActivityFlow). Этот рабочий процесс CanCreateInstance тоже.

Я полагаю, что для последовательного потока мне нужно управлять корреляцией на основе контента (CustomerId), и таким образом я могу определить постоянный рабочий процесс в базовой сохранности AppFabric sql.

Впоследствии у меня есть другие операции в StateFlow, которые представлены вызовами службы WCF, аналогично:

SuspendCustomer(string customerId)

Я предполагаю, что мне нужно подобрать правильный экземпляр StateFlow, сопоставив его с CustomerId в StateFlow, но я не могу найти способ применить Correlation в StateFlow, ни добавив CorrelationInitializer, ни ссылаясь на локальную переменную CorrelationHandle.

Теперь я спрашиваю, нужна ли мне корреляция для StateFlow и если да, то как мне это сделать? Или я что-то здесь неправильно понимаю?

Большое спасибо

Брайан

1 ответ

Решение

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

Другие вопросы по тегам