Особенности распределения потоков задач

При работе с большим количеством задач в планировщике задач предусмотрено распределение всего количества потоков, которое задается в файле с настройками планировщика задач, «равными частями» между классами задач, например, при наличии 3-х классов и 8 потоков  будет произведено разделение по 2 потока на класс, остальные потоки использоваться не будут. Как правило, существует ряд нересурсоёмких задач, которые выполняются постоянно c определенным интервалом, такие задачи должны выполняться в первую очередь без задержек и ряд ресурсоёмких задач с различным приоритетом.

Для каждого класса задач в планировщике задач формируется собственная очередь. На каждый класс задач должен быть всегда выделен минимум один поток, для того чтобы исключить ситуацию, когда задача определенного класса не может быть запущена, так как все потоки заняты задачами других классов.

Для задач с неоднократным периодом выполнения существует возможность задания «своей очереди» при установке свойства IScheduledTaskProperties.Queueing в True. При выполнении задач сначала производится проверка наличия очереди у самой задачи, а затем наличие очереди, обусловленной превышением максимального числа выполняемых одновременно задач.

Ограничение количества одновременно выполняемых задач в планировщике задач осуществляется с помощью атрибута ThreadsCount из раздела конфигурационного файла <Metabases>.

См. также:

Конфигурационный файл