В 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, использует этот пул.