Не отрабатывает таймаут с ФоновыеЗадания.ОжидатьЗавершенияВыполнения
Доброго времени суток.
Платформа 8.3 (8.3.17.1496)
Конфигурация Бухгалтерия предприятия, редакция 2.0 (2.0.66.140)
Не могу понять почему не отрабатывает таймаут в функции ФоновыеЗадания.ОжидатьЗавершенияВыполнения
ОжидатьЗавершенияВыполнения (WaitForExecutionCompletion)
Доступен, начиная с версии 8.3.13.
Синтаксис:
ОжидатьЗавершенияВыполнения(<ФоновыеЗадания>, <Таймаут>)
Параметры:
<ФоновыеЗадания> (обязательный)
Тип: Массив.
Массив фоновых заданий, завершение которых требуется ожидать.
<Таймаут> (необязательный)
Тип: Число.
Таймаут в секундах ожидания завершения заданий. Если таймаут не задан, ожидание будет длиться до завершения всех заданий, или до первого аварийного завершения задания.
Таймаут = 10 сек, ВремяОжиданияСек = 600 сек, но весь цикл выполняется в течение 1 сек, хотя должен 10 мин.
Платформа 8.3 (8.3.17.1496)
Конфигурация Бухгалтерия предприятия, редакция 2.0 (2.0.66.140)
Не могу понять почему не отрабатывает таймаут в функции ФоновыеЗадания.ОжидатьЗавершенияВыполнения
ОжидатьЗавершенияВыполнения (WaitForExecutionCompletion)
Доступен, начиная с версии 8.3.13.
Синтаксис:
ОжидатьЗавершенияВыполнения(<ФоновыеЗадания>, <Таймаут>)
Параметры:
<ФоновыеЗадания> (обязательный)
Тип: Массив.
Массив фоновых заданий, завершение которых требуется ожидать.
<Таймаут> (необязательный)
Тип: Число.
Таймаут в секундах ожидания завершения заданий. Если таймаут не задан, ожидание будет длиться до завершения всех заданий, или до первого аварийного завершения задания.
Процедура ВыгрузкаPBI_ЗапускЗаданийФоново(МассивПараметров, ВремяОжиданияСек) Экспорт
МассивЗапущенныхЗаданий = Новый Массив;
МассивЗапущенныхЗаданий.Добавить(ФоновыеЗадания.Выполнить("DIS_ФоновыеЗадания.ВыгрузкаPBI_OLAP_FP", МассивПараметров, , "ВыгрузкаPBI_OLAP_FP"));
МассивЗапущенныхЗаданий.Добавить(ФоновыеЗадания.Выполнить("DIS_ФоновыеЗадания.ВыгрузкаPBI_KoefTip", МассивПараметров, , "ВыгрузкаPBI_KoefTip"));
ТаймаутСек = 10;
ЗаданияВыполняются = истина;
Пока ЗаданияВыполняются и ВремяОжиданияСек >= 0 цикл
ЗаданияВыполняются = Ложь;
СостоянияФоновыхЗаданий = ФоновыеЗадания.ОжидатьЗавершенияВыполнения(МассивЗапущенныхЗаданий, ТаймаутСек);
ВремяОжиданияСек = ВремяОжиданияСек - ТаймаутСек;
Сообщить(Строка(ТекущаяДата()) + " осталось времени ожидания " + ВремяОжиданияСек + " сек.");
Для Каждого ФоновоеЗадание Из СостоянияФоновыхЗаданий Цикл
Если ФоновоеЗадание.Состояние = СостояниеФоновогоЗадания.Активно Тогда
ЗаданияВыполняются = истина;
Прервать; //Нашли хоть 1 активный, ждем дальше
КонецЕсли;
КонецЦикла;
КонецЦикла;
КонецПроцедуры
ПоказатьТаймаут = 10 сек, ВремяОжиданияСек = 600 сек, но весь цикл выполняется в течение 1 сек, хотя должен 10 мин.
29.04.2021 11:44:02 осталось времени ожидания 590 сек.
29.04.2021 11:44:02 осталось времени ожидания 580 сек.
29.04.2021 11:44:02 осталось времени ожидания 570 сек.
29.04.2021 11:44:02 осталось времени ожидания 560 сек.
29.04.2021 11:44:02 осталось времени ожидания 550 сек.
29.04.2021 11:44:02 осталось времени ожидания 540 сек.
29.04.2021 11:44:02 осталось времени ожидания 530 сек.
29.04.2021 11:44:02 осталось времени ожидания 520 сек.
29.04.2021 11:44:02 осталось времени ожидания 510 сек.
29.04.2021 11:44:02 осталось времени ожидания 500 сек.
29.04.2021 11:44:02 осталось времени ожидания 490 сек.
29.04.2021 11:44:02 осталось времени ожидания 480 сек.
29.04.2021 11:44:02 осталось времени ожидания 470 сек.
29.04.2021 11:44:02 осталось времени ожидания 460 сек.
29.04.2021 11:44:02 осталось времени ожидания 450 сек.
29.04.2021 11:44:02 осталось времени ожидания 440 сек.
29.04.2021 11:44:02 осталось времени ожидания 430 сек.
29.04.2021 11:44:02 осталось времени ожидания 420 сек.
29.04.2021 11:44:02 осталось времени ожидания 410 сек.
29.04.2021 11:44:02 осталось времени ожидания 400 сек.
29.04.2021 11:44:02 осталось времени ожидания 390 сек.
29.04.2021 11:44:02 осталось времени ожидания 380 сек.
29.04.2021 11:44:02 осталось времени ожидания 370 сек.
29.04.2021 11:44:02 осталось времени ожидания 360 сек.
29.04.2021 11:44:02 осталось времени ожидания 350 сек.
29.04.2021 11:44:02 осталось времени ожидания 340 сек.
29.04.2021 11:44:02 осталось времени ожидания 330 сек.
29.04.2021 11:44:02 осталось времени ожидания 320 сек.
29.04.2021 11:44:02 осталось времени ожидания 310 сек.
29.04.2021 11:44:02 осталось времени ожидания 300 сек.
29.04.2021 11:44:02 осталось времени ожидания 290 сек.
29.04.2021 11:44:02 осталось времени ожидания 280 сек.
29.04.2021 11:44:02 осталось времени ожидания 270 сек.
29.04.2021 11:44:02 осталось времени ожидания 260 сек.
29.04.2021 11:44:02 осталось времени ожидания 250 сек.
29.04.2021 11:44:02 осталось времени ожидания 240 сек.
29.04.2021 11:44:02 осталось времени ожидания 230 сек.
29.04.2021 11:44:02 осталось времени ожидания 220 сек.
29.04.2021 11:44:02 осталось времени ожидания 210 сек.
29.04.2021 11:44:02 осталось времени ожидания 200 сек.
29.04.2021 11:44:02 осталось времени ожидания 190 сек.
29.04.2021 11:44:02 осталось времени ожидания 180 сек.
29.04.2021 11:44:02 осталось времени ожидания 170 сек.
29.04.2021 11:44:02 осталось времени ожидания 160 сек.
29.04.2021 11:44:02 осталось времени ожидания 150 сек.
29.04.2021 11:44:02 осталось времени ожидания 140 сек.
29.04.2021 11:44:02 осталось времени ожидания 130 сек.
29.04.2021 11:44:02 осталось времени ожидания 120 сек.
29.04.2021 11:44:02 осталось времени ожидания 110 сек.
29.04.2021 11:44:02 осталось времени ожидания 100 сек.
29.04.2021 11:44:02 осталось времени ожидания 90 сек.
29.04.2021 11:44:02 осталось времени ожидания 80 сек.
29.04.2021 11:44:02 осталось времени ожидания 70 сек.
29.04.2021 11:44:02 осталось времени ожидания 60 сек.
29.04.2021 11:44:02 осталось времени ожидания 50 сек.
29.04.2021 11:44:02 осталось времени ожидания 40 сек.
29.04.2021 11:44:02 осталось времени ожидания 30 сек.
29.04.2021 11:44:02 осталось времени ожидания 20 сек.
29.04.2021 11:44:02 осталось времени ожидания 10 сек.
29.04.2021 11:44:02 осталось времени ожидания 0 сек.
Показать29.04.2021 11:44:02 осталось времени ожидания 580 сек.
29.04.2021 11:44:02 осталось времени ожидания 570 сек.
29.04.2021 11:44:02 осталось времени ожидания 560 сек.
29.04.2021 11:44:02 осталось времени ожидания 550 сек.
29.04.2021 11:44:02 осталось времени ожидания 540 сек.
29.04.2021 11:44:02 осталось времени ожидания 530 сек.
29.04.2021 11:44:02 осталось времени ожидания 520 сек.
29.04.2021 11:44:02 осталось времени ожидания 510 сек.
29.04.2021 11:44:02 осталось времени ожидания 500 сек.
29.04.2021 11:44:02 осталось времени ожидания 490 сек.
29.04.2021 11:44:02 осталось времени ожидания 480 сек.
29.04.2021 11:44:02 осталось времени ожидания 470 сек.
29.04.2021 11:44:02 осталось времени ожидания 460 сек.
29.04.2021 11:44:02 осталось времени ожидания 450 сек.
29.04.2021 11:44:02 осталось времени ожидания 440 сек.
29.04.2021 11:44:02 осталось времени ожидания 430 сек.
29.04.2021 11:44:02 осталось времени ожидания 420 сек.
29.04.2021 11:44:02 осталось времени ожидания 410 сек.
29.04.2021 11:44:02 осталось времени ожидания 400 сек.
29.04.2021 11:44:02 осталось времени ожидания 390 сек.
29.04.2021 11:44:02 осталось времени ожидания 380 сек.
29.04.2021 11:44:02 осталось времени ожидания 370 сек.
29.04.2021 11:44:02 осталось времени ожидания 360 сек.
29.04.2021 11:44:02 осталось времени ожидания 350 сек.
29.04.2021 11:44:02 осталось времени ожидания 340 сек.
29.04.2021 11:44:02 осталось времени ожидания 330 сек.
29.04.2021 11:44:02 осталось времени ожидания 320 сек.
29.04.2021 11:44:02 осталось времени ожидания 310 сек.
29.04.2021 11:44:02 осталось времени ожидания 300 сек.
29.04.2021 11:44:02 осталось времени ожидания 290 сек.
29.04.2021 11:44:02 осталось времени ожидания 280 сек.
29.04.2021 11:44:02 осталось времени ожидания 270 сек.
29.04.2021 11:44:02 осталось времени ожидания 260 сек.
29.04.2021 11:44:02 осталось времени ожидания 250 сек.
29.04.2021 11:44:02 осталось времени ожидания 240 сек.
29.04.2021 11:44:02 осталось времени ожидания 230 сек.
29.04.2021 11:44:02 осталось времени ожидания 220 сек.
29.04.2021 11:44:02 осталось времени ожидания 210 сек.
29.04.2021 11:44:02 осталось времени ожидания 200 сек.
29.04.2021 11:44:02 осталось времени ожидания 190 сек.
29.04.2021 11:44:02 осталось времени ожидания 180 сек.
29.04.2021 11:44:02 осталось времени ожидания 170 сек.
29.04.2021 11:44:02 осталось времени ожидания 160 сек.
29.04.2021 11:44:02 осталось времени ожидания 150 сек.
29.04.2021 11:44:02 осталось времени ожидания 140 сек.
29.04.2021 11:44:02 осталось времени ожидания 130 сек.
29.04.2021 11:44:02 осталось времени ожидания 120 сек.
29.04.2021 11:44:02 осталось времени ожидания 110 сек.
29.04.2021 11:44:02 осталось времени ожидания 100 сек.
29.04.2021 11:44:02 осталось времени ожидания 90 сек.
29.04.2021 11:44:02 осталось времени ожидания 80 сек.
29.04.2021 11:44:02 осталось времени ожидания 70 сек.
29.04.2021 11:44:02 осталось времени ожидания 60 сек.
29.04.2021 11:44:02 осталось времени ожидания 50 сек.
29.04.2021 11:44:02 осталось времени ожидания 40 сек.
29.04.2021 11:44:02 осталось времени ожидания 30 сек.
29.04.2021 11:44:02 осталось времени ожидания 20 сек.
29.04.2021 11:44:02 осталось времени ожидания 10 сек.
29.04.2021 11:44:02 осталось времени ожидания 0 сек.
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Вопрос снимается..
Это правило работает и если таймер задан, т.е. если в массиве заданий есть хоть одно не активное задание, задержку по таймеру игнорирует((
Если таймаут не задан, ожидание будет длиться до завершения всех заданий, или до первого аварийного завершения задания.
Это правило работает и если таймер задан, т.е. если в массиве заданий есть хоть одно не активное задание, задержку по таймеру игнорирует((
Переделала цикл, добавила удаление неактивных заданий. Теперь таймаут отрабатывает и время выполнения уменьшилось в 2 раза.
Таймаут = 10;
МаксВремяЗавершения = ТекущаяДата() + ВремяОжиданияСек;
ЗаданияВыполняются = истина;
Пока ЗаданияВыполняются и МаксВремяЗавершения >= ТекущаяДата() цикл
ЗаданияВыполняются = Ложь;
МассивЗапущенныхЗаданий = ФоновыеЗадания.ОжидатьЗавершенияВыполнения(МассивЗапущенныхЗаданий, Таймаут);
КоличествоЗаданий = МассивЗапущенныхЗаданий.Количество();
Для ОбратныйИндекс = 1 по КоличествоЗаданий цикл
ТекИнд = КоличествоЗаданий - ОбратныйИндекс;
ФоновоеЗадание = МассивЗапущенныхЗаданий[ТекИнд];
Если ФоновоеЗадание.Состояние = СостояниеФоновогоЗадания.Активно Тогда
ЗаданияВыполняются = истина;
Иначе
МассивЗапущенныхЗаданий.Удалить(ТекИнд);
КонецЕсли;
КонецЦикла;
КонецЦикла;
Показать
Добрый день!
Видимо, этот момент исправили. В платформе 8.3.20.1674 поток, вызвавший ФоновыеЗадания.ОжидатьЗавершенияВыполнения() - возобновляется при завершении хотя бы одного из фоновых заданий. И не важно, успешно оно завершилось или аварийно.
Видимо, этот момент исправили. В платформе 8.3.20.1674 поток, вызвавший ФоновыеЗадания.ОжидатьЗавершенияВыполнения() - возобновляется при завершении хотя бы одного из фоновых заданий. И не важно, успешно оно завершилось или аварийно.
(4)
это так с 8.13 и было
Ожидает завершения всех фоновых заданий из списка. Если хотя бы у одного задания изменился статус или время ожидания истекло, то возвращается обновленный список фоновых заданий.
ОжидатьЗавершенияВыполнения (WaitForExecutionCompletion)
Синтаксис:
ОжидатьЗавершенияВыполнения(<ФоновыеЗадания>, <Таймаут>)
Параметры:
<ФоновыеЗадания> (обязательный)
Тип: Массив.
Массив фоновых заданий, завершение которых требуется ожидать.
<Таймаут> (необязательный)
Тип: Число.
Таймаут в секундах ожидания завершения заданий. Если таймаут не задан, ожидание будет длиться до завершения всех заданий, или до первого аварийного завершения задания.
Возвращаемое значение:
Тип: Массив.
Возвращает массив обновленных фоновых заданий по истечении таймаута:
Если в переданном массиве нет заданий со статусом Активно, возвращает список переданных фоновых заданий.
Если в переданном массиве есть задания со статусом Активно, по после первого изменения статуса любого из переданных фоновых заданий или после истечения таймаута возвращает обновленный список фоновых заданий.
Описание:
Ожидает завершения всех фоновых заданий из списка. Если хотя бы у одного задания изменился статус или время ожидания истекло, то возвращается обновленный список фоновых заданий.
Ожидать завершения заданий может только администратор или пользователь, запустивший задания на выполнение.
Доступность:
Сервер, толстый клиент, внешнее соединение, мобильное приложение (сервер), мобильный автономный сервер.
Использование в версии:
Доступен, начиная с версии 8.3.13.
Показать
Видимо, этот момент исправили.
это так с 8.13 и было
Ожидает завершения всех фоновых заданий из списка. Если хотя бы у одного задания изменился статус или время ожидания истекло, то возвращается обновленный список фоновых заданий.
ОжидатьЗавершенияВыполнения (WaitForExecutionCompletion)
Синтаксис:
ОжидатьЗавершенияВыполнения(<ФоновыеЗадания>, <Таймаут>)
Параметры:
<ФоновыеЗадания> (обязательный)
Тип: Массив.
Массив фоновых заданий, завершение которых требуется ожидать.
<Таймаут> (необязательный)
Тип: Число.
Таймаут в секундах ожидания завершения заданий. Если таймаут не задан, ожидание будет длиться до завершения всех заданий, или до первого аварийного завершения задания.
Возвращаемое значение:
Тип: Массив.
Возвращает массив обновленных фоновых заданий по истечении таймаута:
Если в переданном массиве нет заданий со статусом Активно, возвращает список переданных фоновых заданий.
Если в переданном массиве есть задания со статусом Активно, по после первого изменения статуса любого из переданных фоновых заданий или после истечения таймаута возвращает обновленный список фоновых заданий.
Описание:
Ожидает завершения всех фоновых заданий из списка. Если хотя бы у одного задания изменился статус или время ожидания истекло, то возвращается обновленный список фоновых заданий.
Ожидать завершения заданий может только администратор или пользователь, запустивший задания на выполнение.
Доступность:
Сервер, толстый клиент, внешнее соединение, мобильное приложение (сервер), мобильный автономный сервер.
Использование в версии:
Доступен, начиная с версии 8.3.13.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот