Size: a a a

Camunda BPM Group

2019 July 18

AY

Alexander Yakovlev in Camunda BPM Group
Йее)
источник

IP

Igor Petetskikh in Camunda BPM Group
скажите, а камунда умеет слать ивенты о том, что появилась новая екстернал таска во внешнюю MQ?
источник

DK

Denis Kotov in Camunda BPM Group
умеет вызывать ваш код на котлине
источник

DK

Denis Kotov in Camunda BPM Group
который это умеет)
источник

IP

Igor Petetskikh in Camunda BPM Group
тогда это ровно тот же вопрос, с которым я приходил пару дней назад.

к моменту вызова листенера на старт экстернал таски, ее самой еще нету. соответственно код на котлине, который в листенере вызовется об экстернал таске ниче не знает
источник

IP

Igor Petetskikh in Camunda BPM Group
https://docs.camunda.org/manual/7.8/user-guide/process-engine/connectors/

Скажите, а вот эта штука - позволяет делать вызовы внешних API при выполнении таски?
источник

DG

Dmitrii Goncharov in Camunda BPM Group
Dmitrii Goncharov
Немного не так. Глобальный листенер публикует спринговый ApplicationEvent. На это событие реагирует @TransactionalEventListener (срабатывает ПОСЛЕ коммита текущей транзакции) и уже в нем происходит обычный fetchAndLock и пуш в брокер.
@conung_vic Вот тред гляньте с обсуждением. Да в листенере еще нет таска в БД.
источник

DG

Dmitrii Goncharov in Camunda BPM Group
Igor Petetskikh
https://docs.camunda.org/manual/7.8/user-guide/process-engine/connectors/

Скажите, а вот эта штука - позволяет делать вызовы внешних API при выполнении таски?
А эти штуки настолько ограничены, что сами камундовцы предлагают альтернативы в блоге)
источник

IP

Igor Petetskikh in Camunda BPM Group
Dmitrii Goncharov
@conung_vic Вот тред гляньте с обсуждением. Да в листенере еще нет таска в БД.
спасибо.
источник

IP

Igor Petetskikh in Camunda BPM Group
до меня только щас дошло, что можно эмулировать экстернал таску обычной сервисоной таской с кодом на джаве, который будет делать пуш туда, куда скажут и последующим активити Receive Task

Я верно же понимаю, что в Receive Task процесс будет сидеть и ждать пока не получит соответствующий эвент, что эквивалентно, если бы сидел и ждал пока не получит Complete от ExternalTask?
источник

DK

Denis Kotov in Camunda BPM Group
За исключением того, что если внешняя система очень быстрая, то она может ответить быстрее
источник

DK

Denis Kotov in Camunda BPM Group
Чем камунда станет на ожидание
источник

DK

Denis Kotov in Camunda BPM Group
И потеряется эвент
источник

DG

Dmitrii Goncharov in Camunda BPM Group
Igor Petetskikh
до меня только щас дошло, что можно эмулировать экстернал таску обычной сервисоной таской с кодом на джаве, который будет делать пуш туда, куда скажут и последующим активити Receive Task

Я верно же понимаю, что в Receive Task процесс будет сидеть и ждать пока не получит соответствующий эвент, что эквивалентно, если бы сидел и ждал пока не получит Complete от ExternalTask?
Да, но вы загрязняете схему лишними ивентами
источник

DK

Denis Kotov in Camunda BPM Group
Ну и это не совсем то, зачем в бпмн нужны эвенты
источник

IP

Igor Petetskikh in Camunda BPM Group
Denis Kotov
За исключением того, что если внешняя система очень быстрая, то она может ответить быстрее
да. но асинхронные задачи редко бывают настолько быстрыми. но поинт понятен
источник

IP

Igor Petetskikh in Camunda BPM Group
Dmitrii Goncharov
Да, но вы загрязняете схему лишними ивентами
а как это сделать по другому?
источник

IP

Igor Petetskikh in Camunda BPM Group
т.е. наиболее очевидный вариант :
каждую минуту опрашивать камунду на предмет наличия экстернал тасок - не нравится. если опрашивателей будет много, или в камунде будет много процессов, то кто-то рано или поздно загнется
источник

DG

Dmitrii Goncharov in Camunda BPM Group
Вот здесь мой вариант
источник

DG

Dmitrii Goncharov in Camunda BPM Group
Переслано от Dmitrii Goncharov
Немного не так. Глобальный листенер публикует спринговый ApplicationEvent. На это событие реагирует @TransactionalEventListener (срабатывает ПОСЛЕ коммита текущей транзакции) и уже в нем происходит обычный fetchAndLock и пуш в брокер.
источник