Указание порядка обработки событий
Службы Notification Services предоставляют два параметра определения порядка обработки правил приложения. Можно указать, будут ли правила обрабатываться один раз за тактовый период генератора или же при каждом получении пакета событий. Эти два параметра известны как тактовая последовательность и субтактовая последовательность. Эти два параметра предоставляют возможность выбора между точностью данных и производительностью генератора. По умолчанию службы Notification Services используют тактовую последовательность. Дополнительные сведения о тактах генератора см. в разделе Указание длительности такта генератора.
Тактовая последовательность
В этом режиме службы Notification Services запускают правила один раз за такт генератора в следующем порядке:
- Правила хроники событий
- Правила подписок, управляемых событиями
- Правила плановых подписок
Если за такт получено несколько пакетов событий, то службы Notification Services обрабатывают одновременно таблицу хроники событий и правила подписок, управляемых событиями, для всех пакетов событий так, как будто все события являются частью одного пакета.
Все плановые подписки, которые необходимо обработать за такт, обрабатываются одновременно в конце тактового интервала.
С помощью группирования всех событий, полученных за тактовый интервал, и всех плановых подписок, которые необходимо обработать за такт, приложение может работать с высокой производительностью благодаря пакетированию. Но такое преимущество в производительности достигается за счет строгого соблюдения порядка. Если правильность порядка не является строгим требованием для приложения, то используйте тактовую последовательность.
Субтактовая последовательность
В некоторых случаях необходимо обеспечить отдельную обработку всех пакетов событий в порядке получения пакетов и необходимо обработать только те плановые подписки, которые используют данные, полученные до обработки плановых подписок. В этом случае необходимо использовать субтактовую последовательность.
В субтактовой последовательности события и подписки обрабатываются следующим образом:
- Перед обработкой первого пакета событий службы Notification Services запускают запланированные правила для плановых подписок, которые необходимо обработать перед получением первого пакета событий.
- Службы Notification Services затем запускают правила для каждого пакета событий в порядке их получения:
- Правила хроники событий
- Правила подписок, управляемых событиями
- Правила плановых подписок
После обработки всех пакетов событий службы Notification Services запускают правила плановых подписок для всех подписок, которые необходимо обработать после получения последнего пакета событий.
Демонстрация тактовой и субтактовой последовательностей
На следующем рисунке показано восемь тактов генератора. За эти восемь тактов генератора прибывает 12 пакетов событий и необходимо обработать 12 плановых подписок.
Как работает тактовая последовательность
Генератор обрабатывает 12 пакетов событий и 12 плановых подписок в зависимости от выбранного порядка обработки событий. В следующей таблице показано, как генератор обрабатывает каждый такт.
Такт | Тактовая последовательность | Субтактовая последовательность |
---|---|---|
Такт обработки №1 |
Пакеты событий E1, E2 и E3 обрабатываются совместно. Нет плановых (отложенных) подписок для обработки. |
Пакеты событий E1, E2 и E3 обрабатываются последовательно. Нет плановых (отложенных) подписок для обработки. |
Такт обработки №2 |
Пакеты событий E4 и E5 обрабатываются совместно. Обрабатывается плановая подписка T1. |
Пакеты событий E4 и E5 обрабатываются последовательно. Обрабатывается плановая подписка T1. |
Такт обработки №3 |
Пакеты событий E6 и E7 обрабатываются совместно. Обрабатывается плановая подписка T2. |
Обрабатывается пакет событий Е6. Обрабатывается плановая подписка T2. Обрабатывается пакет событий Е7. |
Такт обработки №4 |
Обрабатывается пакет событий Е8. Плановые подписки T3 и T4 обрабатываются совместно. |
Обрабатывается пакет событий Е8. Плановые подписки T3 и T4 обрабатываются совместно. |
Такт обработки №5 |
Пакеты событий E9 и E10 обрабатываются совместно. Обрабатывается плановая подписка T5. |
Обрабатывается плановая подписка T5. Пакеты событий E9 и E10 обрабатываются последовательно. |
Такт обработки №6 |
Обрабатывается пакет событий Е11. Плановые подписки T6 и T7 обрабатываются совместно. |
Обрабатывается плановая подписка T6. Обрабатывается пакет событий Е11. Обрабатывается плановая подписка T7. |
Такт обработки №7 |
Обрабатывается пакет событий Е12. Плановые подписки T8 и T9 обрабатываются совместно. |
Плановые подписки T8 и T9 обрабатываются совместно. Обрабатывается пакет событий Е12. |
Такт обработки №8 |
Нет пакетов событий для обработки. Плановые подписки T10, T11 и T12 обрабатываются совместно. |
Нет пакетов событий для обработки. Плановые подписки T10, T11 и T12 обрабатываются совместно. |
Настройка тактовой и субтактовой последовательностей
Для настройки субтактовой последовательности задайте свойству ProcessEventsInOrder значение true. По умолчанию используется тактовая последовательность, поэтому можно либо задать свойству ProcessEventsInOrder значение false, либо можно исключить свойство из определения приложения.
Настройка тактовой и субтактовой последовательностей
- При определении приложения с помощью XML-документа определите последовательность с помощью ProcessEventsInOrder Element (ADF).
- При определении приложения программным путем задайте последовательность с помощью свойства ProcessEventsInOrder (NMO).
См. также
Основные понятия
Указание настроек выполнения приложения
Указание длительности такта генератора
Определение правил хроники событий
Определение правил подписок
Определение правил событий
Определение запланированных правил