Кварц. Сетевые задания, не всегда работающие - не могут найти причину почему

Мы используем Кварц. Сеть для планирования приблизительно двухсот повторяющихся заданий. Каждое задание использует тот же класс с реализацией IJob, но у них могут быть различные расписания. На практике они заканчивают тем, что имели то же расписание, таким образом, у нас есть приблизительно двести деталей задания, каждый с их собственным (идентичным) повторением / простым триггером, запланированным. Интервал является одним часом.

Задача, которую выполняет это задание, состоит в том, чтобы загрузить RSS ленту и затем загрузить все медиа-файлы, связанные с в RSS ленте. До загрузки это вытирает каталог, куда это собирается поместить файлы. Единственное выполнение задания берет где угодно от пары секунд к дюжине секунд (иногда больше).

Наш метод планирования должен назвать GetScheduler () на новом StdSchedulerFactory (все задания планируются сразу в тот же экземпляр IScheduler). Мы следуем за планированием с непосредственным Запуском ().

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

Так, например, все двести заданий должны были работать в 18:40 этим вечером. Большинство из них сделало. Но небольшое количество не сделало. Я определяю это путем рассмотрения меток времени файла, которые должны, конечно, быть обновлены, если прогоны задания (потому что это удаляет и повторно загружает файл).

Я включил Кварц. Сетевой вход, и добавил довольно много регистрирующихся операторов к нашему коду также.

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

После этого, все остановки действия. Никакие задания не работают, никакие сообщения журнала не создаются. Нуль.

И затем, в следующем интервале увольнения, Кварц запускает снова и мое обновление файлов журнала, и различные файлы начинают загружать. Но - это, конечно, появляется как некоторые экземпляры JobDetail, никогда не делают это главе строки (так сказать) или делают так очень нечасто. За все выходные некоторые задания, казалось, обновляли вполне часто, и недавно, и другие не обновили единственное время начиная с запуска процесса в пятницу (он работает в оболочке службы Windows, btw).

Так... Я надеюсь, что кто-то может помочь мне понять это поведение Кварца.

Я должен быть уверен что каждый прогоны задания. Если это - триггер, пропущен, мне нужен Кварц для выполнения его как можно скорее. От чтения документации я думал, что это будет поведением по умолчанию - для SimpleTrigger с неопределенным повторным счетом, это перенесло бы задание для непосредственного выполнения, если бы триггерное окно было пропущено. Это, кажется, не имеет место. Есть ли какой-либо способ, которым я могу определить, почему Кварц не запускает эти задания? Я регистрируюсь на уровне трассировки, и они просто не там. Это создает и выполняет очень много заданий, но если я замечаю пропавших без вести того - все, что я могу найти, то, что это выполнило его в прошлый раз, когда (например, иногда это не работало в течение многих часов или дней). Ничто о том, почему это было пропущено (я ожидал, что Кварц зарегистрирует что-то, если это пропускает задание по какой-либо причине), и т.д.

Любая справка действительно, действительно ценилась бы - я провел свой весь день, пытаясь понять это.

5
задан STW 6 August 2013 в 21:01
поделиться