Рабочий процесс WF4 в AppFabric не возобновляется должным образом после IISreset - PullRequest
1 голос
/ 11 апреля 2011

Folks, У меня были некоторые проблемы с проблемой WF4. Я моделирую пакетный движок / планировщик работы после демонстрации Рона Джейкобса в его веб-трансляции endpoint.tv (http://archive.msdn.microsoft.com/wf4BatchJob). В его примере «рабочая ветвь» просто считается внутри цикла while. Для моего примера я отправляю сообщение другому рабочему процессу с именем SampleEngine.xamlx, который выполняет подсчет. При каждом подсчете этот рабочий процесс обращается к родителю (JobScheduler.xamlx) и сообщает о достигнутом прогрессе. Это работает отлично, и у меня это работает сейчас - я могу запланировать работу и наблюдать за его развитием как на панели инструментов AppFabric, так и вызывая QueryProgress (пара отправки / получения в моем рабочем процессе планировщика).

Проблема заключается в том, что когда я выполняю настройку iireset для имитации сбоя сервера или другой проблемы, рабочие процессы (sampleengine.xamlx и jobscheduler.xamlx) возвращаются в оперативный режим и отображаются как «В процессе». Проблема в том, что ни один из них не отслеживает больше событий - они, кажется, где-то застопорились. Кроме того, ни один из них не отвечает на служебные сообщения так же, как я обычно вижу, что службы WF отвечают, когда для текущего состояния рабочего процесса не запланировано никаких действий приема.

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

Как я уже сказал, единственное изменение, которое я внес в образец Рона, заключается в том, что моя рабочая ветвь не находится в цикле while - она ​​отправляет отдельное сообщение дочернему рабочему процессу (sampleengine.xamlx), чтобы запустить его. Корреляция между рабочими процессами все работает должным образом, если сервер не выключается во время выполнения.

Будем весьма благодарны за любые мысли о том, что мне нужно сделать здесь, чтобы рабочие процессы начинались с того места, на котором они остановились после сброса IIS. Образец Рона продолжал считать, где моя просто останавливается.

1 Ответ

0 голосов
/ 11 апреля 2011

Убедитесь, что вы включили постоянное хранилище для рабочего процесса в конфигурации AppFabric.По умолчанию он не включен.

...