Поведение задержки рабочего процесса Windows - PullRequest
2 голосов
/ 01 октября 2010

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

Вопрос

Как WorkflowServiceHost определяет, что постоянное действие, то есть бездействие из-за задержки, достигло времени ожидания задержки? Загружается ли он в память и проверяется ли так часто, или здесь происходит что-то еще?

Справочная информация

Итак, я немного новичок в рабочем процессе и пытаюсь определить целесообразность его использования для бизнес-процесса, который будет использовать 3-месячную задержку. По сути, бизнес-процесс заключается в предоставлении клиенту трехмесячной пробной версии обновленного сервиса. Чтобы достичь этого, я думаю о реализации действия Pick, которое разделяется между получением WCF («Отмена получения обновления») и 3-месячным действием задержки. Если задержка истекает, они постоянно обновляются, а биллинг обновляется. В качестве альтернативы, если отмена инициализирована, тогда, ну ... да, вы поняли:)

Итак .... меня беспокоит вопрос о том, как реализована задержка при использовании постоянного рабочего процесса SQL. Я не хочу заканчивать работу с 500 активностями в хранилище постоянных данных, которые необходимо загружать каждые 10 минут в течение 3 месяцев, чтобы проверить, не истекло ли действие задержки.

Ответы [ 2 ]

1 голос
/ 10 августа 2016

Согласно https://msdn.microsoft.com/en-us/library/ee829473(v=vs.110).aspx, способ, которым это работает, заключается в следующем:

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

активируемый рабочий процесс - это рабочий процесс, который удовлетворяет одному из следующих критериев:

  • Экземпляр разблокирован и ожидает обработкитаймер с истекшим сроком действия.
  • Экземпляр имеет блокировку с истекшим сроком действия.
  • Экземпляр разблокирован, и его состояние - Выполнение.

Так чтопредложение ОП («Загружает ли он его в память и проверяет ли так часто») является правильным.

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

Надеюсь, это поможет.

0 голосов
/ 16 февраля 2011

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

Я использую WF4 и медиатор, как вы указали выше, и тогда мое решение состоит в том, чтобы попытаться использовать appfabric для повторной инициализации рабочих процессов на основе отложенного таймера.Это основано на том, что я прочитал здесь: Хостинг сервисов рабочих процессов с длительными таймерами / задержками и это здесь: Активация экземпляров сервисов рабочих процессов

Я проверил, что выборотлично работает с задержкой на одной стороне, но теперь мне нужно протестировать appfabric out.

Возможно, я вернусь с обновленной информацией о том, как это работает.Или вы можете дать мне некоторое представление?

...