Предотвращение обезвоженных экземпляров при использовании корреляции параллельного конвоя и отсутствия сообщений

У меня есть оркестровка, которая активируется 1 из 2 типов сообщений, поступающих в параллельной форме. Сообщения сопоставляются по идентификатору и статусу, а затем выполняется оставшаяся часть согласования (и сообщения объединяются в 1).

введите описание изображения здесь

Я хотел бы разработать способ предотвратить появление обезвоженных экземпляров оркестровок, когда одно из двух сообщений не приходит. Таким образом, в основном одно сообщение приходит, а другое нет, экземпляр оркестровки обезвоживается в ожидании второго сообщения.

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

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

Я попытался использовать форму прослушивания для каждого сообщения в его собственной ветке и задержку в третьей ветке, но узнал, что если вы активируете с помощью прослушивания, все ветки должны активироваться, и, поскольку форма задержки не может активировать оркестровку, она будет не компилировать.

Есть какие-нибудь предложения, или я должен просто отказаться и создать отдельную базу данных, чтобы вручную коррелировать сообщения с помощью конвейеров?


person Bensonius    schedule 06.10.2014    source источник


Ответы (1)


Судя по вашему описанию, название вашего сообщения немного неточно. Проблема не в обезвоживании, а в пропущенном сообщении.

Что вам нужно сделать, так это обернуть получение в форму области действия с установленным таймаутом. Затем, если другое сообщение не будет доставлено в течение тайм-аута, будет сгенерировано исключение тайм-аута, которое вы можете обработать и предпринять соответствующие действия.

В противном случае Параллельная фигура по существу будет вечно ждать другого сообщения.

person Johns-305    schedule 06.10.2014
comment
Вы правы насчет названия. Я немного перепутал причину и следствие. Я дам вам предложение попробовать и доложу, что это вселяет во меня надежду. - person Bensonius; 07.10.2014
comment
Кроме того, я должен спросить, не могли бы вы обвести прицел вокруг всей параллельной формы? или вокруг получаются формы индивидуально? - person Bensonius; 07.10.2014
comment
Любой из них должен работать, это будет зависеть от того, как вы хотите обработать условие. - person Johns-305; 07.10.2014