Как изменить рабочий процесс?
Вопрос
Например, система обрабатывает заказ клиента по check identification
-> validate order context
-> make order
. Анкет Но системный администратор может изменить поток во время выполнения, администратор может пропустить «validate order context
”.
Мой вопрос заключается в том, обрабатывает ли систему запросы на согласование заказа, когда Система должна применить изменение потока?
а): Примените изменение до следующего нового запроса заказа.
б): примените изменение немедленно, независимо от того, что какой -либо запрос обрабатывается. Это звучит слишком жестко.
C): Примените изменение до определенного времени, например, любое изменение будет применено в 00:00:00. Я не думаю, что это хорошая стратегия.
Какова лучшая практика для ситуации? Если я использую Framework JBMP для управления рабочим потоком, какую стратегию можно использовать в таком случае? Спасибо!
Решение
Все три ваших варианта действительны. Правильный выбор будет зависеть от проблемы, которую вы решаете. Вот некоторые примеры:
- Примените изменение, начиная со следующего нового заказа. Это хороший вариант, если вы хотите фаза в новом рабочем процессе. Вы можете описать это как «закончить текущую работу с текущим рабочим потоком, но вся новая работа будет использовать новый рабочий процесс».
- Примените изменение немедленно. Это хороший вариант, если более важно, чтобы рабочий процесс Currect (под этим я имею в виду новый рабочий процесс) использовался для всей работы (как текущей, так и новой). Одним из примеров этого может быть «мы удалили ненужный шаг из рабочего процесса».
- Примените изменение, начиная с сертификата. Это хороший вариант в ситуациях, которые могут описать так: «Сегодня мы используем старый рабочий процесс, но завтра мы начнем использовать новый рабочий процесс».
Другие советы
Ваш первый вариант применить со следующим рабочим процессом (IE ORDER) является самым безопасным с точки зрения параллелизма. Это то, что я сделаю Потому что вы не мешаете состоянию объектов, и это очень ясно, что наблюдателю, что произошло.
Второй вариант требует блокировки существующих рабочих процессов, чтобы убедиться, что никто не в validate order context
государство. И, если таковые имеются, написание алгоритма для правильного устранения его выезда из этого состояния.
Наконец, ваш последний вариант - это просто планирование вокруг первых двух. Таким образом, это может быть включено в либо и должен быть обусловлен бизнес -правилами (т.е. требованиями).