|
Регл. задание запускает фоновые задания. Как впоймать окончание. | ☑ | ||
---|---|---|---|---|
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) угу, или завести еще один регистр сведений, в него писать и из него опрашивать - ну чтоб дырку в винчестере быстрее сделать :)
шутка! |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |