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

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

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

Нравится

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

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

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

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

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

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

Изнутри выглядит это всё как-то так:

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;
	}
}

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

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

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

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