Имя: Пароль:
1C
 
Регл. задание запускает фоновые задания. Как впоймать окончание.
0 Eugeneer
 
07.09.22
13:02
Скажем так есть регл задание которое запускает сразу множетсво фоновых заданий (т.е. все они запусскаются и выполняются одновременно).

Как впоймать окончание всех этих заданий на сервере. Нужно короче когда все отработаются - еще кое что запустить по результату всех.
1 Serg_1960
 
07.09.22
13:13
Вместе со всеми запустить твоё "завершающие" - у него в начале алгоритма ФоновыеЗадания.ОжидатьЗавершения(МассивЗапущенныхЗаданий);
2 Eugeneer
 
07.09.22
13:13
Не рекомендуется использовать, начиная с версии 8.3.13.
3 kittystark
 
07.09.22
13:14
можно завести массив/соответствие с гуидами запускаемых ФЗ
на форму повесь обработчик ожидания и в нем бежишь по каждому, получаешь ФЗ, смотришь на Состояние
4 Eugeneer
 
07.09.22
13:14
ОжидатьЗавершенияВыполнения
5 Eugeneer
 
07.09.22
13:15
(3) нет формы.
6 kittystark
 
07.09.22
13:16
ну тады в цикле с некоторой задержкой
7 Eugeneer
 
07.09.22
13:18
(4) делает

ОжидатьЗавершенияВыполнения (WaitForExecutionCompletion)
Синтаксис:
ОжидатьЗавершенияВыполнения(<ФоновыеЗадания>, <Таймаут>)
Параметры:
<ФоновыеЗадания> (обязательный)
Тип: Массив.
Массив фоновых заданий, завершение которых требуется ожидать.
<Таймаут> (необязательный)
Тип: Число.
Таймаут в секундах ожидания завершения заданий. Если таймаут не задан, ожидание будет длиться до завершения всех заданий, или до первого аварийного завершения задания.
8 Serg_1960
 
07.09.22
13:21
(2) "не рекомендуется" не означает "запрещается". Впрочем, ок.
(7) Ну а это чем тебе не нравится?
9 kittystark
 
07.09.22
13:21
(7) что с аварией делать надо?
если продолжать оставшиеся, тогда ОжидатьЗавершенияВыполнения не подойдет
10 Serg_1960
 
07.09.22
13:27
(9) Всё равно подойдёт. Так или иначе, но завершение заданий всё равно нужно анализировать. Поэтому ожидание  - в цикле, пока есть что ожидать, а в случае чего - продолжение или прерывание.
11 kittystark
 
07.09.22
13:34
(10) так?

пока ХотьОдноЖивоеФЗ() цикл
  ОжидатьЗавершенияВыполнения()
конеццикла;
12 Serg_1960
 
07.09.22
13:41
(11) После ОжидатьЗавершенияВыполнения() можно обойти массив заданий с анализом их состояния, попутно заново формируя массив заданий для ожидания... Как то вот так.
13 Serg_1960
 
07.09.22
13:45
Как вариант, можно при запуске заданий параметром передать им адрес хранилища, например, куда они будут сбрасывать результат работы. Тогда, после выхода из режима ожидания, можно анализировать не состояние, а эту информацию.
14 kittystark
 
07.09.22
14:01
(12) "обойти массив заданий с анализом их состояния" >
короче, те же яйца...
15 kittystark
 
07.09.22
14:07
(13) угу, или завести еще один регистр сведений, в него писать и из него опрашивать - ну чтоб дырку в винчестере быстрее сделать :)
шутка!