Обновил систему до 7.14.0, помимо решаемых проблем появилась одна нерешаемая, ТП морозится уже 1.5 недели, поэтому пытаюсь задать вопрос коммьюнити.

Итак, проблема с запуском БП, которые должны стартовать по таймеру.  Если запускать их вручную, они тупо не запускаются. В журнале появляется в статусе "Выполняется", но реально ничего не выполняется и просто "висит". Это баг, или фича новой версии?

В логах приложения ошибок нет. По таймеру запускаются и работают.

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

Кто-нибудь сталкивался? Куда можно поковырять?

Нравится

7 комментариев
Лучший ответ

У нас возникало из-за переполнения очереди заданий в Quartz. Оказывается, что таймер в БП не приостанавливает процесс, а ставит его в очередь выполнения в определенное время. И если эта очередь переполнена, то и процесс по таймеру дальше не идет. Скорее всего у вас та же проблема. Если есть доступ к журналу Quartz - посмотрите там. 

Как вариант - вместо таймера поставьте скрипт-таск с Thread.Sleep.

У нас возникало из-за переполнения очереди заданий в Quartz. Оказывается, что таймер в БП не приостанавливает процесс, а ставит его в очередь выполнения в определенное время. И если эта очередь переполнена, то и процесс по таймеру дальше не идет. Скорее всего у вас та же проблема. Если есть доступ к журналу Quartz - посмотрите там. 

Как вариант - вместо таймера поставьте скрипт-таск с Thread.Sleep.

Ксензов Егор,

а это какая таблица?

Алексей-Карягин,

Добрый день! Вот скрипт на выборку данных из таблицы Quartz

SELECT [SCHED_NAME],
[TRIGGER_NAME]
,[TRIGGER_GROUP]
,[JOB_NAME]
,[JOB_GROUP]
,[DESCRIPTION]
,[dbo].[fn_QuartzTimeToDateTime]([NEXT_FIRE_TIME]) [NEXT_FIRE_TIME]
,[dbo].[fn_QuartzTimeToDateTime]([PREV_FIRE_TIME]) [PREV_FIRE_TIME]
,[PRIORITY]
,[TRIGGER_STATE]
,[TRIGGER_TYPE]
,[dbo].[fn_QuartzTimeToDateTime]([START_TIME]) [START_TIME]
,[dbo].[fn_QuartzTimeToDateTime]([END_TIME]) [END_TIME]
,[CALENDAR_NAME]
,[MISFIRE_INSTR]
,[JOB_DATA]
FROM [QRTZ_TRIGGERS]

 

Нигрескул Алексей,

у меня 27 записей. Не похоже, чтобы было какое-то переполнение.

А какие сигналы старты у процесса? Обычно ставят 2 - таймер и ручной запуск

Просто таймер. На 7.11 это прекрасно работало.

С версии  7.12.3 менялся движок процессов, они стали интерпретируемыми. Соответственно, не всё, что работало в 7.11, полностью совместимо с нынешним, нужно тестировать. Возможно, решение от Владимира как раз поможет.

Показать все комментарии