|
Регл. задание запускает фоновые задания. Как впоймать окончание. |
☑ |
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) угу, или завести еще один регистр сведений, в него писать и из него опрашивать - ну чтоб дырку в винчестере быстрее сделать :)
шутка!
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший