2015-11-14 5 views
0

У меня есть механизм планировщика для веб-приложения, работающего в quartz.net, который работает хорошо. Этот планировщик обрабатывает многие обычные, но важные задачи, такие как отправка ежедневной электронной почты и т. Д.Ограничить работу кварца конкретному работнику

Однако у меня теперь есть новое требование для приложения, в результате чего выполняются некоторые высокочастотные задания (1 работа в секунду).

Я бы идеально выполнил это с использованием той же очереди заданий и со всей обработкой ошибок и уже созданными уведомлениями. Я также хочу повторно использовать некоторые из фактических типов работы в бит высокой частоты.

Однако, из-за различной природы заданий, я бы предпочел запустить выделенный рабочий сервер (ы) для 1-го материала, поэтому ресурс разбит на разделы.

Есть ли способ в quartz.net, используя ту же самую очередь и типы заданий, чтобы ограничить определенные рабочие задания для определенных работников таким образом? В идеале это будет основано на метаданных триггера или аналогичных данных. Я прочитал документацию и поработал в течение нескольких часов, но не нашел ничего такого описания контроля.

ответ

0

С Java Quartz есть функция Quartz Where, которая может решить эту проблему. Он позволяет выбирать хост для запуска заданий на основе таких параметров, как загрузка, имя и т. Д. Однако это не переносится в мир .NET (он закрыт и требует разработки с нуля).

Вы можете реализовать свои требования, используя два разных планировщика. Полностью законно размещать несколько планировщиков и совместно использовать базу данных, просто иметь другой экземпляр планировщика на основе ваших потребностей в разделении. Вы также можете настроить приоритет потока, если вы пройдете маршрут запуска экземпляров в том же поле.