20 Декабря 2016
Очень часто возникает необходимость того, чтобы родительский процесс ожидал завершения запущенного им же подпроцесса. Ранее в платформе FlowPoint эта возможность была реализована так, что родительский процесс постоянно находился в режиме ожидания и периодически запрашивал состояние целевого подпроцесса. Такая активность ожидающего процесса может происходить в течении нескольких дней или даже месяцев, что безусловно сказывается на быстродействии высоконагруженных систем. Кроме этого происходит захламление истории процесса сообщениями о состоянии ожидаемого процесса. И наконец, реакция на изменения в ожидаемом процессе происходит не по факту их возникновения, а в момент следующего запроса состояния, периодичность которого уменьшается пропорционально времени ожидания.
В SharePoint 2010 существует событийный механизм, который позволяет осуществлять обмен сообщениями между процессами. Таким образом родительский процесс после запуска подпроцесса не проявляет никакой активности в системе и ожидает наступления соответствующего события, сигнализирующего о том, что запущенный подпроцесс завершил свою работу. Это решение не оказывает негативного влияния на быстродействие системы, а так же позволяет реагировать на изменения в целевых процессах немедленно по факту возникновения события. Реализацией такого решения стали новые активности:
- WaitToContinueEventActivity - активность ожидания внешнего события
- SendContinueEventActivity - активность отправки внешнего сообщения
Работа с активностями в дизайнере процессов FlowPoint: