Операция Pick Workflow не отправляет ответ до завершения действия - PullRequest
1 голос
/ 29 марта 2012

У меня есть рабочий процесс, который содержит операцию выбора.Каждый PickBranch запускается по запросу WCF.Затем запущенная ветвь отправляет ответ на запрос и выполняет действие Action.Но наблюдаемое мной поведение указывает на то, что ответ не отправляется до тех пор, пока действие Action не будет завершено, что приводит к истечению времени ожидания исходного запроса, в зависимости от того, сколько времени занимает выполнение действия Action.1004 *

В PickBranch выше я добавляю рабочие задания в мобильную базу данных.Каждый рабочий заказ занимает до 16 секунд для добавления в базу данных.По мере увеличения количества рабочих заданий увеличивается вероятность истечения времени ожидания исходного запроса.Что я делаю не так?

Ответы [ 4 ]

2 голосов
/ 29 марта 2012

Хорошо, я думаю, у меня есть разрешение для этого.Согласно ответу Мориса здесь , я добавил операцию Delay после SendReplyToReceive, и рабочий процесс затем начал вести себя как ожидалось.

enter image description here

0 голосов
/ 10 марта 2015

Мой опыт проверки PersistBeforeSend на SendReplyToReceive в True устраняет эту проблему.Помещение блока Persist после SendReplyToReceive также помогает.

0 голосов
/ 29 марта 2012

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

Вы уверены, что Запрос на вашу активность SendReply, кажется, установлен правильно?

Патрик все еще прав, вы должны реализовать свою деятельность с базой данных как AsyncCodeActivity, но это не будет причиной задержки ответа.

0 голосов
/ 29 марта 2012

Это работает как задумано.Если операции занимают так много времени, вам лучше обслужить их асинхронный вызов?Проверьте AsyncCodeActivity здесь:

http://msdn.microsoft.com/en-us/library/system.activities.asynccodeactivity.aspx

...