Технические вопросы
7.x

Запуск БП в ротации по установленному времени или через определенные временные интервалы

Существует ли возможность назначать выполнение бизнес-процессов в ротацию по установленному времени, или через определенные временные интервалы от некоего момента ?

PS: Судя по всему процесс типовой конфигурации "Синхронизировать почту" запускается в таком режиме, но изучив его, как схему - найти каких-то особенных признаков не удалось.
В интерфейсе конфигуратора и приложения тоже не встречал какого-либо планировщика.

Нравится

3 комментария

Здравствуйте!

Запуск процесса в определенное время (при смене регулярного выражения можно добиться других периодов, например, каждые N минут):
http://www.community.terrasoft.ru/forum/topic/24817

Запуск процесса периодично (аналогично синхронизации почты):
http://www.community.terrasoft.ru/forum/topic/13945

Периодичность задается параметром minutelyInterval.

Используется .Net-овская Quartz (соответственно можно нагуглить Cron-выражения для периодов)
Мы для удобной установки триггеров создали вспомогательную утилиту:
toolz

Изнутри выглядит это всё как-то так:
[csharp]
public string startSyncScheduler(string name, string group, string process, string cronCode, int hours, int minutes)
{
try {
UserConnection userConnection = this.UserConnection;
if (AppScheduler.DoesJobExist(name, group))
{
AppScheduler.RemoveJob(name, group);
}

IJobDetail job = AppScheduler.CreateProcessJob(name, group, process, userConnection.Workspace.Name, userConnection.CurrentUser.Name);
ITrigger trigger = TriggerBuilder.Create()
.WithIdentity(name, group)
.WithSchedule(CronScheduleBuilder.CronSchedule(string.Format(cronCode, minutes, hours, DateTime.UtcNow.Day, DateTime.UtcNow.DayOfWeek.ToString().Substring(0, 3).ToUpper() ))
.WithMisfireHandlingInstructionDoNothing()
.InTimeZone(TimeZoneInfo.Utc))
.ForJob(job)
.Build();

AppScheduler.Instance.ScheduleJob(job, trigger);

return "Job Well Done!";
}
catch (Exception ex) {
return ex.Message;
}
}
[/csharp]

Коллеги, добрый день!

Для установки параметров запуска бизнес-процессов по расписанию через пользовательский интерфейс, мы выпустили соответствующее дополнение к bpm'online. Надеюсь, будет полезным:)

Подробнее здесь https://marketplace.terrasoft.ru/app/extended-business-process-scheduler

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