Моделиране на система за уведомяване

Опитвам се да моделирам система за уведомяване, при която събитие се случва през период от време (начална дата и крайна дата). Ако периодът от време е надвишен, от потребителя се изисква или да актуализира периода от време, или да зададе флаг, че събитието е било i) отменено, ii) завършено или iii) затворено. Ако днес е един ден след планираната дата за завършване на събитието, мениджърът получава имейл. Ако два дни, мениджърът и техният ръководител получават имейл. Ако > два дни, мениджърът, техният ръководител и собственикът на компанията получават имейл. Всеки ден след това изпраща имейл на тримата, че събитието е просрочено. Събитията могат да бъдат планирани по всяко време в бъдеще, така че процесът трябва просто да проследи кога събитието е Предстоящо, Активно, Просрочено (след крайната дата), Отменено, Затворено или Завършено.

Започнах да изграждам работен поток като приложение за WorkFlow Service, хоствано в Windows Server AppFabric, защото изглежда, че това е най-добрият начин да поддържам този дълготраен работен процес. Също така започнах да използвам WF State Machine Activity Pack CTP 1, тъй като изглеждаше най-добрият начин за моделиране на тези различни състояния на събития.

Не съм сигурен как да моделирам този процес, както и да накарам процеса да се запази и да продължи да работи във фонов режим, за да наблюдава състоянието на събитието и да се държи, както е описано по-горе. Мисля, че имам всички състояния, моделирани правилно в държавната машина. Все още се опитвам да разбера преходите от едно състояние в друго. Оценявам всякакви насоки.

Текуща държавна машина, както е моделирана


person Flea    schedule 07.04.2011    source източник


Отговори (1)


Държавните машини работят в залп на изпълнение. Наистина няма какво да се „изпълни“, докато работният процес се поддържа. Подозирам, че имате предвид как работният процес ще се „събуди“, когато времето за изчакване бъде превишено.

Отговорът е, че дейността Delay ще създаде траен таймер. Услугата за управление на работни потоци на AppFabric периодично пита слоя за постоянство дали има екземпляри на работни потоци, които могат да се изпълняват - това са екземпляри, които са се сринали или при които трайният таймер е изтекъл.

В крайна сметка таймерът ще изтече и работният процес ще бъде зареден, а отметката за активността на забавяне ще бъде възобновена.

person Ron Jacobs    schedule 07.04.2011
comment
Случайно попаднах на WorkFlow Samples (msdn.microsoft.com/en-us/library /dd483375.aspx) и експериментирахме с това. Благодаря ти, Рон! - person Flea; 08.04.2011