СоздаваемоеЗапланированноеЗадание
Стд::Задания::СоздаваемоеЗапланированноеЗадание
Доступность: Сервер
Создаваемое запланированное задание.
Сравнение ссылочное
Иерархия типа
Базовые типы: Объект
Примеры
Задание будет запланировано немедленно. Независимо от успешности выполнения будет запланирован повторный запуск через 1 секунду после завершения. Если в момент вызова задание уже выполнялось или ожидало выполнения, то повторно не планируется. Результаты выполнения не сохраняются. В журнале событий регистрируются только ошибка выполнения задания. По такому принципу можно организовать обработку очереди на основе справочника:
- при добавлении нового элемен та справочника вызывать этот код
- в обработчике задания обрабатывать записи, накопленные в справочнике на момент вызова
- за счет повторов реализуется обработка записей, добавленных во время работы предыдущей итерации
знч Задание = ЗапланированныеЗадания.Создать(&МойМодуль.МойМетод)
Задание.Настроить(Ключ = "МоеЗадание",
ХранениеРезультатов = СтратегияХраненияРезультатовЗаданий.Отсутствует(),
ПовторыПриУспехе = СтратегияПовтораЗадания.Интервал(1с),
ПовторыПриОшибке = СтратегияПовтораЗадания.Интервал(1с),
СтратегияПубликацииЗадания = СтратегияПубликацииЗадания.Отбросить,
РегистрацияСобытий = СтратегияРегистрацииСобытийЗаданий.Ошибка)
Задание.Запланировать()
Методы
Запланировать
Доступность: Сервер
Запланировать(): ОписаниеЗадания
Исключения
ИсключениеТаймаутаЗадания - в случае долгого прерывания исполнения существующего задания (при планировании со стратегией публикации Отбросить). При возникновении исключения рекомендуется повторить операцию.
Примеры
// Запуск задания при успешном завершении транзакции
исп Транзакция = Транзакции.Начать()
// ...
знч Задание1 = ЗапланированныеЗадания.Создать(&МойМодуль.МойМетод)
Задание1.Запланировать() // Задание не будет запланировано тут, т.к. есть активная транзакция
// ...
Транзакция.Фиксировать() // Задание будет запланировано тут
знч Задание2 = ЗапланированныеЗадания.Создать(&МойМодуль.МойМетод)
Задание2.Запланировать() // Задание будет запланировано тут
ЗапланироватьБезТранзакции
Доступность: Сервер
ЗапланироватьБезТранзакции(): ОписаниеЗадания
Примеры
// Запуск задания немедленно
исп Транзакция = Транзакции.Начать()
// ...
знч Задание = ЗапланированныеЗадания.Создать(&МойМодуль.МойМетод)
Задание.ЗапланироватьБезТранзакции() // Задание будет запланировано тут
// ...
Транзакция.Фиксировать()
ЗапланироватьВТранзакции
Доступность: Сервер
ЗапланироватьВТранзакции(): ОписаниеЗадания
Примеры
// Запуск задания немедленно
исп Транзакция = Транзакции.Начать()
// ...
знч Задание = ЗапланированныеЗадания.Создать(&МойМодуль.МойМетод)
Задание.ЗапланироватьВТранзакции()
// ...
Транзакция.Фиксировать() // Задание будет запланировано тут
Настроить
Доступность: Сервер
@ИменованныеПараметры
Настроить(
Ключ: Строка,
Описание: Строка,
Расписание: Расписание|Обходимое<Расписание>,
Задержка: Длительность,
ПовторыПриОшибке: СтратегияПовтораЗадания,
ПовторыПриУспехе: СтратегияПовтораЗадания,
СтратегияПубликации: СтратегияПубликацииЗадания,
ХранениеРезультатов: СтратегияХраненияРезультатовЗаданий,
ПриОшибкеПоследнегоПовтора: (РезультатЗадания)->ничто,
УсловияЗапускаНаМобильныхУстройствах: УсловияЗапускаЗаданияНаМобильныхУстройствах,
РегистрацияСобытий: СтратегияРегистрацииСобытийЗаданий
): СоздаваемоеЗапланированноеЗадание
Вызов возможен только с именованными параметрами
Настраивает параметры запуска нового задания. Возвращает этот же экземпляр СоздаваемоеЗапланированноеЗадание с новыми значениями параметров запуска.
Опциональный параметр Ключ
задает ключ, идентифицирующий задание.
Этот ключ используется для управления заданием и получения результатов выполнения задания.
Если ключ не задан при создании задания, то он генерируется системой автоматически.
Максимальная длина ключа - 60 символов.
Опциональный параметр Описание
задает человеко-читаемое описание задания.
Опциональный параметр Расписание
задает расписание запуска задания.
По умолчанию запуск без расписания.
Опциональный параметр Задержка
задает задержку начала выполнения относительно времени планирования задания.
Задержка должна быть неотрицательной.
Если задано расписание, то задержка игнорируется.
Опциональный параметр Повтор ыПриОшибке
задает стратегию повторных запусков задания, если оно завершилось с ошибкой.
По умолчанию используется стратегия Отсутствует.
Опциональный параметр ПовторыПриУспехе
задает стратегию повторных запусков задания, если оно завершилось успешно.
По умолчанию используется стратегия Отсутствует.
Опциональный параметр СтратегияПубликации
задает стратегию публикации задания.
По умолчанию используется стратегия Отбросить.
Опциональный параметр ХранениеРезультатов
задает стратегию хранения результатов выполнения задания.
По умолчанию используется стратегия Все.
Опциональный параметр ПриОшибкеПоследнегоПовтора
задает обработчик, который будет вызван при завершении с ошибкой последнего запуска задания.
Опциональный параметр УсловияЗапускаНаМобильныхУстройствах
за дает условия, которые должны соблюдаться при запуске запланированного задания на мобильных устройствах.
По умолчанию используются условия УсловияЗапускаЗаданияНаМобильныхУстройствах в которых LongExecutionDuration = Ложь
, NetworkConnection = Ложь
, ExternalPower = Ложь
.
Опциональный параметр РегистрацияСобытий
задает стратегию регистрации событий в журнале событий.
По умолчанию используется стратегия СобытиеЗавершения.
Примеры
Планирование заданий, запускающих метод МойМетод модуля МойМодуль.
метод ЗапланироватьЗадания()
// Запуск задания с задержкой в 3 секунды.
знч ЗаданиеСЗадержкой = ЗапланированныеЗадания.Создать(&МойМодуль.МойМетод)
ЗаданиеСЗадержкой.Настроить(Задержка = 3с)
ЗаданиеСЗадержкой.Запланировать()
знч СОбработкойОшибки = ЗапланированныеЗадания.Создать(&МойМодуль.МойМетод)
// метод МойМодуль.МойОбработчикОшибки будет вызван,
// если запуск задания завершится с ошибкой
СОбработкойОшибки.Настроить(ПриОшибкеПоследнегоПовтора = &МойМодуль.МойОбработчикОшибки)
СОбработкойОшибки.Запланировать()
// Запуск задания в 8 утра 23 февраля и 8 марта.
знч Праздничн ое = ЗапланированныеЗадания.Создать(&МойМодуль.МойМетод)
Праздничное.Настроить(Расписание = [
Расписание.Ежемесячно(Время{8:00}, {Месяц.Февраль}, {23}),
Расписание.Ежемесячно(Время{8:00}, {Месяц.Март}, {8})])
Праздничное.Запланировать()
;
метод МойОбработчикОшибки(Результат: РезультатЗадания)
// код обработчика результата с ошибкой
;