Как возобновить сохраненный рабочий процесс с задержкой активности без перезагрузки в память
Как возобновить постоянный рабочий процесс с задержкой активности без перезагрузки в память:
Я создаю рабочий процесс для выхода из приложения. Мое требование: если какой-либо участник не получил ответ в указанное время, запрос должен быть передан на утверждение следующему уровню участника.
Предположим, что заявитель подал заявку на отпуск, и руководитель группы должен утвердить его в течение 7 дней. Если руководитель группы не отвечает в течение 7 дней, он автоматически переходит к утверждению менеджера. В общем, для достижения этого мы напишем службу Windows, которая периодически проверяет и отправляет уведомления по истечении этого периода.
Но я хочу добиться без написания службы Windows. Есть ли возможность в WF4.0.
Я пытаюсь вот так: после того, как заявитель отправил запрос, я показываю запрос в почтовом ящике участника и сохраняю рабочий процесс. Как только участник ответил, я возобновляю рабочий процесс (потому что я сохраняю идентификатор экземпляра рабочего процесса) и передаю ответ участника для дальнейшего выполнения рабочего процесса.
В этом случае, если участник не ответил, как эскалировать / отправить запрос менеджеру без использования службы Windows.
Можно ли что-нибудь сделать с Задержкой?
2 ответа
Если вы создаете службу рабочего процесса, она размещается в WoskflowServiceHost и периодически проверяет, есть ли таймеры с истекшим сроком действия, и возобновляет их.
Вы должны разместить где-то движок рабочего процесса... Если он не в службе Windows, он должен быть в IIS.
Вы также можете разместить его в "обычном" приложении командной строки, но если вы закроете приложение, рабочий процесс остановится.