В Quartz .NET 2.x можно настроить планировщик с разными пулами потоков

Я новичок в Quartz .NET. Я использую версию 2.6. У меня есть 2 вида работы, низкий и высокий приоритет. Я бы хотел пул потоков только для работы с высоким приоритетом. Есть ли способ настроить планировщик для обработки этого?

Спасибо

1 ответ

Решение

Я бы хотел пул потоков только для работы с высоким приоритетом.

ThreadPool предоставляет набор потоков, которые Quartz может использовать при выполнении заданий. Когда появляется новое задание, оно должно выполняться в потоке из пула кварцевых потоков, и этот поток может исходить только из пула кварцевых потоков.

Сколько пулов потоков у вас может быть: каждый экземпляр планировщика Quartz позволит вам создать только один пул потоков, и все задания в этом экземпляре планировщика будут выполняться в этом пуле.

Таким образом, вы можете создать много экземпляров планировщика Quartz и таким образом разделить ваши задания.


Примечание. Размер пула потоков, системный приоритет потоков и реализация пула могут быть изменены / заменены. Чтобы обеспечить собственную реализацию, вам нужен класс, полученный из IThreadPool интерфейс

    /// Execute the given <see cref="Task" /> in the next
    /// available <see cref="Thread" />.
    bool RunInThread(Func<Task> runnable);

Из документации: Кварц поставляется с простым (но очень удовлетворительным) пулом потоков с именем Quartz.Simpl.SimpleThreadPool, это IThreadPool Реализация просто поддерживает фиксированный набор потоков в своем пуле - никогда не увеличивается, не уменьшается. Но в остальном он достаточно надежный и очень хорошо протестирован - так как почти каждый, кто использует Quartz, использует этот пул.

Другие вопросы по тегам