1

Сценарий выглядит следующим образом:Как запрос WCF может быть сопоставлен с несколькими экземплярами Workflow?

У меня есть несколько клиентов, в которых они могут зарегистрироваться на сервере рабочего процесса, используя запросы WCF, для получения каких-либо уведомлений. Информация об уведомлениях будет получена из внешней системы с использованием другой активности приема. Затем рабочий процесс должен получать информацию о уведомлении и обратный вызов всех зарегистрированных клиентов с использованием активности отправки и корреляции обратного вызова (клиенты демонстрируют интерфейсы обратного вызова, реализованные там, и адресаты конечной точки, сначала отправленные с запросами на регистрацию). Подход «Работа с рабочим процессом» используется с постоянным хранилищем.

Теперь я ищу способ скорректировать входящую информацию об уведомлениях, полученных от внешней системы, с постоянными экземплярами рабочего процесса, созданными ранее, когда запросы на регистрацию, так что все клиенты будут уведомлены с использованием конечных точек, которые уже прошли с запросами на регистрацию. Является ли WF 4.0 способным возобновлять и выполнять несколько экземпляров рабочего процесса, когда информация о полученном уведомлении без сохранения конечных точек каким-то образом вручную и идет через них? Если да, как я могу это сделать?

Кроме того, если мой подход к этому не соответствует действительности, то, пожалуйста, посоветуйте мне о наилучшей практике такой системы с использованием служб WCF.

Ваша помощь очень ценится.

ответ

1

Когда вы используете корреляцию запросов с службами документооборота, корреляционный ключ должен всегда соответствовать одному экземпляру рабочего процесса, вы не можете иметь несколько экземпляров рабочего процесса, реагирующих на одно сообщение. Таким образом, вам нужно либо многоадресную рассылку сообщения, используя все различные корреляционные ключи, либо возобновить экземпляры рабочего процесса каким-либо другим способом. Другим способом может быть сохранение запроса где-нибудь, как таблица SQL, и периодические проверки рабочего процесса, если они нуждаются в уведомлении клиента.

Смежные вопросы