порядок выполнения тасков с setTasksDependMask

Ответить
selivanoff
Сообщения: 1
Зарегистрирован: Пн дек 09, 2019 11:04 am

порядок выполнения тасков с setTasksDependMask

Сообщение selivanoff »

Ситуация такая.
Есть два блока в Job, один из них зависит от другого через block2.setTasksDependMask("block1")
Если 2й таск в block1 досчитался, а 1й ещё нет, то в block2 2й таск считаться не начинает, пока не досчитается 1й таск в block1.
Соответственно, если 1й таск почему-то тупит, то все остальные таски в block2 будут его ждать.

Можно как-то управлять этим поведением, чтобы таски зависимого блока не ждали выполнения первого таска?
Аватара пользователя
Timur
Site Admin
Сообщения: 178
Зарегистрирован: Вс июл 09, 2017 4:59 pm
Откуда: Королёв
Контактная информация:

Re: порядок выполнения тасков с setTasksDependMask

Сообщение Timur »

Здавствуйте.

Это баг, который был там изначально.
Он обусловлен особенностью солвинга задачи:
https://github.com/CGRU/cgru/issues/6

Он иногда раздражает, но не часто. Вы вообще первый, кто об этом заговорил.
Я до него рано или поздно всё же доберусь.
Но после пулов.
Тимур Хайрулин
CGRU 3.3.1 Ubuntu 22.04LTS, MS Windows 10 (clients only).
Аватара пользователя
Timur
Site Admin
Сообщения: 178
Зарегистрирован: Вс июл 09, 2017 4:59 pm
Откуда: Королёв
Контактная информация:

Re: порядок выполнения тасков с setTasksDependMask

Сообщение Timur »

ps
Т.е. это ещё одно нудобство реализации зависимостей тасков через рекурсию.
А также это тормозит сервер от кол-ва блоков в такой задаче в геометрической прогрессии.

pps
Вот зависимости между задачами решаются по-дугому. Сначала решаются зависимости, и задачи становятся либо READY либо WAITDEP, т.е. на солвинге потом не надо чтобы WAITDEP задача рекурсивно солвила READY задацу. WAITDEP просто не солвтся и всё. Надо организовать такую же зависимость между тасками.
Тимур Хайрулин
CGRU 3.3.1 Ubuntu 22.04LTS, MS Windows 10 (clients only).
Ответить