Size: a a a

Camunda BPM Group

2021 September 22

SD

Serg D. in Camunda BPM Group
Но для этого нужно хорошую обвязку написать, чтобы это ровно работало
источник

OM

Oleg Marchenko in Camunda BPM Group
Не можно, а нужно) для асинхронного взаимодействия внешние таски очень хорошо работают
источник

SD

Serg D. in Camunda BPM Group
Да я в курсе, я просто не правильно изначальный посыл понял
источник

DK

Dmitrii Kanaev in Camunda BPM Group
сори, да, поправлю себя:
Делегат начал выполнение и заснул ->
прошло 5 мин ->
он уходит в ошибку boundaryError (при этом нет никакого лога) ->
boundaryError по фейловой ветки терминирует процесс ->
делегат просыпается и типо процесс бежит дальше, но в итоге на каком-то шаге понимает ,что процесс затерминирован и падает с ошибкой
источник

SD

Serg D. in Camunda BPM Group
BoundaryError на ровном месте не появляется, его кто-то выбрасывает
источник

DK

Dmitrii Kanaev in Camunda BPM Group
вот и я так думаю, но то, что не было лога, меня заставило сомневаться и предположить, что у камунды есть таймауты на выполнение
источник

DK

Dmitrii Kanaev in Camunda BPM Group
Во всех делегатах перехватываются Exception и логируется. Конечно, есть микро шанс, что лог потерялся и не долетел до ELK
источник

SD

Serg D. in Camunda BPM Group
Погоняйте под debug. Он очень подробный у камунды. Видны все переходы
источник

DK

Dmitrii Kanaev in Camunda BPM Group
А вот это вот lock на 5 мин, он зачем нужен я так и не понял? Кому еще нужна эта джоба?
источник

DK

Denis Kotov in Camunda BPM Group
Это не надо решать на уровне процесса,то надо решать на уровне кода/архитектуры
источник

A

Artem in Camunda BPM Group
в бд надо написать же, что джоба залочена, и чтоб другие экзекуторы ее не брали
источник

DK

Denis Kotov in Camunda BPM Group
Потому что тред занимается и все сломается когда всё будет занято)
источник

DK

Dmitrii Kanaev in Camunda BPM Group
аа, и типо если лока нет, тогда поток может быть либо переиспользован, либо еще что-то...
источник

SD

Serg D. in Camunda BPM Group
Если не будет лока и джоба выдаётся единожды, то есть шанс её потерять
источник

ММ

Максим Монин... in Camunda BPM Group
Есть специальный метод Rest в том числе и для External task - можно произвольно в самой задаче установить любой таймаут в том числе во время ее исполнения. У меня есть задачи с с часовыми таймаутами по вызову api. Все это легко регулируется свойствами самой task и поведением. А если все таки просрочено... ну тогда да... таск идет на retry, а не так что что-то там выбивается. Просто job executor видит что lock снялся commit нет, значит можно заново делать чтобы протолкнуть задачу.
источник

A

Artem in Camunda BPM Group
Как понять выдается? джобы же в бд лежат
источник

SD

Serg D. in Camunda BPM Group
Джоба лежит в бд. Есть процесс вымирающий джобы из бд. Есть внутренняя очередь с джобами в памяти. Есть job executor с пулом тредов.)))
источник

ММ

Максим Монин... in Camunda BPM Group
300000 ms это lock job executor умалчиваемый, который говорит, что транзакцию я хочу выполнить за 5минут... а если нет, другой thread job executor хватает процесс
источник

SD

Serg D. in Camunda BPM Group
Если джоба выбирается из бд и берётся в работу, без системы локов есть шанс потерять джобу в случае падения треда
источник

DK

Dmitrii Kanaev in Camunda BPM Group
ааа вот теперь все встает на свои места!
источник