Quartz.Net Бассейны - PullRequest
       19

Quartz.Net Бассейны

1 голос
/ 07 января 2010

Я настроил quartz.net для запуска нескольких запланированных заданий и нескольких заданий опроса. Задания опроса могут состоять из запуска кода, который может занять 10 минут. Эти задания ставятся в очередь из действий пользователя (и поэтому может быть очередь из x действий пользователя). Я запланировал задания, которые должны быть выполнены в то время. Тем не менее, все потоки могут быть использованы долгосрочными заданиями опроса. Есть ли способ назначить поток для запланированных задач, который никогда не будет использоваться заданиями опроса?

Мне известен приоритет потока, но это не гарантирует, что запланированное задание будет выполнено, если другие потоки уже используются.

Спасибо за любую помощь.

Ответы [ 2 ]

2 голосов
/ 01 марта 2010

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

Используйте ограниченный пул потоков для рабочих потоков, чтобы не запускать слишком много рабочих потоков одновременно.

См. Java.util.concurrent для классов Executor и ThreadPool. Это более сложное решение, но может масштабироваться лучше.

1 голос
/ 07 января 2010

Ты прав. Если все потоки являются запущенными заданиями, запланированные задания не будут выполняться в запланированное время.

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

...