Подсистема обработки упорядоченных событий
Подсистема обработки упорядоченных событий используется для обеспечения соблюдения надлежащего порядка при обработке событий, таких как привязка и отмена привязки. Эта подсистема предоставляет интерфейс для пула потоков и поддерживает параметры настройки, подобные другим подсистемам, таким как подсистема обработки событий. В настоящее время этот пул обслуживает только оценку присутствия, которая запускается событиями привязки/отмены привязки.
Настройки, описанные в следующей таблице, служат для ограничения объема потребляемой памяти при работе системы с большой нагрузкой. В случае превышения их значений вещи начинают изменять значение isReporting на false независимо от состояния устройства (дополнительные сведения см. в таблице ниже).
Настройка
|
Описание
|
Минимальное число потоков, выделенных для пула обработки событий
|
Минимальное число потоков, которые будут выделены. Эта настройка также определяет начальный размер пула потоков. Если потоки становятся неактивными, они сокращаются для сохранения ресурсов вплоть до такого количества.
|
Максимальное число потоков, выделенных для пула обработки событий
|
Максимальное число потоков, которые будут выделены. Под нагрузкой пул динамически изменяет свой размер вплоть до такого количества.
|
Максимум записей очереди перед добавлением нового рабочего потока
|
Максимальное количество заданий (оценка присутствия), готовых к немедленной обработке перед тем, как пул изменит свой размер.
|
Максимальное число заблокированных заданий для обеспечения выполнения по порядку
|
Максимальное количество заданий (оценка присутствия), которые могут быть поставлены в очередь в ожидании предыдущей оценки на том же устройстве.
|
Учтите, что первые три настройки имеют точные эквиваленты в подсистеме обработки событий.
Подсистема проводит различие между двумя разными причинами, по которым задание может быть заблокировано.
• Доступно недостаточно потоков конвертера для обработки всех оценок в реальном времени по мере их поступления. Настройка "Максимум записей очереди" позволяет ограничить вероятность возникновения такой ситуации.
• Либо одни и те же устройства могут включаться и выключаться, требуя большого числа оценок. Если оценка не завершается перед возникновением следующего события привязки/отмены привязки, для выполнения второй оценки требуется дождаться завершения первой. Настройка "Максимальное число заблокированных заданий" управляет количеством оценок, которые могут быть остановлены таким образом.
В случае превышения предела "Максимум записей очереди" пул потоков пытается изменить собственный размер. При успешном выполнении этого действия новый поток конвертера поможет справиться с очередью заданий оценки.
Если размер изменить невозможно из-за ограничения максимального числа потоков или если превышено предельное значение максимального числа заблокированных заданий, пул потоков отклоняет задание оценки. Состояние отклоненного задания оценки немедленно изменяется на "нет отчетов" без какой-либо дальнейшей обработки.