Планировщик. Добавление процесса в планировщик

Здравствуйте! Разбираюсь с планировщиком.
Пытаюсь добавить в планировщик BPMOnline 5.4 бизнес-процесс
Создал страницу, добавил на нее кнопку, при нажатии на которую, процесс должен быть добавлен в планировщик.
Добавил в Usings "Terrasoft.Core.Scheduler"
Код кнопки:

// Создание задания для запуска процесса.
var job = AppScheduler.CreateProcessJob("ProcessJob", null, "Process",
    "Dev", "Supervisor");
var trigger = new CronTriggerImpl("ProcessTrigger", null, "0 0 17 * * ?");
AppScheduler.Instance.ScheduleJob(job, trigger);
Page.ResultEdit.Value = "Done!";
return true;

Сделал все как описано в примере SDK
Но при компиляции возникает ошибка:
пропущена директива using или ссылка на сборку "CronTriggerImpl"

Нравится

7 комментариев

Здравствуйте, Эмин.

Спасибо за Ваше обращение. Мы зарегистрировали его в Службе технической поддержки и назначили специалиста, который сможет Вас компетентно проконсультировать по данному вопросу.

Здравствуйте, Эмин!
Необходимо еще подключить namespace
Quartz.Impl.Triggers

"Андрей Каспаревич" написал:

Здравствуйте, Эмин!

Необходимо еще подключить namespace

Quartz.Impl.Triggers

С уважением,

Каспаревич Андрей

Эксперт 3-й линии поддержки


Здравствуйте, Андрей!
Добавил в Usings
Quartz.Impl.Triggers
При компиляции такая ошибка

Имя типа или пространства имен "Triggers" отсутствует в пространстве имен "Quartz.Impl" (пропущена ссылка на сборку?)

Пробовал просто добавлять namespace "Quartz", но тогда ошибка на "CronTriggerImpl"

Здравствуйте, Эмин!
Приношу извинения, не протестировал на 5.х. Дело в том, что в 5.х используется старая версия Quartz.NET, в которой еще нет CronTriggerImpl, а в BPMonline - более новая, в которой CronTriggerImpl уже доступен.
Есть два варианта выхода из данной ситуации:
1. Немного "поизвращаться" и реализовать нужный функционал без CronTriggerImpl.
2. Написать нам в поддержку и инициировать переход на более новую версию Quartz.NET. Подмена библиотеки может привести к ошибкам в работе базовой функциональности, поэтому должно проводить комплексное тестирование, что займет достаточно много вермени.

"Андрей Каспаревич" написал:

Здравствуйте, Эмин!

Приношу извинения, не протестировал на 5.х. Дело в том, что в 5.х используется старая версия Quartz.NET, в которой еще нет CronTriggerImpl, а в BPMonline - более новая, в которой CronTriggerImpl уже доступен.

Есть два варианта выхода из данной ситуации:

1. Немного "поизвращаться" и реализовать нужный функционал без CronTriggerImpl.

2. Написать нам в поддержку и инициировать переход на более новую версию Quartz.NET. Подмена библиотеки может привести к ошибкам в работе базовой функциональности, поэтому должно проводить комплексное тестирование, что займет достаточно много вермени.

С уважением,

Каспаревич Андрей

Эксперт 3-й линии поддержки


Спасибо за помощь!
Я так понимаю, в 5.4 используется Quartz 1.x. В доках для него есть описание класса CronTrigger. Попробую использовать его.

"Андрей Каспаревич" написал:
Есть два варианта выхода из данной ситуации:

1. Немного "поизвращаться" и реализовать нужный функционал без CronTriggerImpl.

2. Написать нам в поддержку и инициировать переход на более новую версию Quartz.NET. Подмена библиотеки может привести к ошибкам в работе базовой функциональности, поэтому должно проводить комплексное тестирование, что займет достаточно много вермени.

С уважением,

Каспаревич Андрей

Эксперт 3-й линии поддержки


Добрый день, Андрей. К сожалению, использовать CronTrigger не вышло (запуска БП не происходит, хотя добавление проходит без ошибок)
Подскажите, пожалуйста, как можно реализовать запуск БП каждый день без CronTrigger?

Здравствуйте, Эмин.

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

string syncProcessName = "Process1";
string syncJobGroupName = "MyProcessGroup";
string syncJobName = "MyJobName";
int periodInMinutes = 1440;
AppScheduler.ScheduleMinutelyProcessJob(syncJobName, syncJobGroupName, syncProcessName,
	UserConnection.Solution.Name, UserConnection.CurrentUser.Name, periodInMinutes);

Выполнение такого кода добавит выполнение БП Process1 раз в сутки.

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