Мне нужен рабочий процесс, который может получать несколько сообщений из MSMQ.WF4: Как настроить рабочий процесс для приема нескольких сообщений
Пример:
Receive: CreateWorkflow (CanCreateInstance=True)
Do Something...
Parallel (CompletionCondition=ExitParallel)
Parallel Branch 1
Receive: Update (CanCreateInstance=False, Use correlation)
Process...
Parallel Branch 2
Receive: Finish (CanCreateInstance=False, Use correlation)
Set ExitParallel=True
Я хотел бы, чтобы мой рабочий быть в состоянии получить несколько сообщений Update. Однако в этой настройке он может принимать только 1. Согласно this MSDN post, это должно сработать, но я никогда не получал это для работы.
Является ли решение помещать бесконечный цикл while в параллельную ветвь 1? Есть ли другой способ?
Помещение приема в петлю работает. Существует вероятность того, что появляется другое сообщение «Обновить», когда рабочий процесс обрабатывает предыдущее сообщение «Обновить». В этом случае рабочий процесс не принимается. Будет ли сообщение потеряно? Или сообщение ожидает, пока рабочий процесс вернется к приему? – Mas
У службы рабочего процесса есть свойство AllowBufferedReceive, которое позволяет отправлять сообщения в очередь до того, как они станут процессами, и позволит вам вернуться к Получателю и прочитать второй запрос. – Maurice