Size: a a a

Camunda BPM Group

2019 October 04

AK

Artem Kuraev in Camunda BPM Group
А зачем?
источник

R

Ruslan Kadyrbaev in Camunda BPM Group
Artem Kuraev
А зачем?
сделать ровно 3 попытки повтора, без учета таймаутов
источник

d

denis.che in Camunda BPM Group
Artem Kuraev
А зачем?
ну а как тогда уменьшать количество попыток, если не было колбэека совсем?
источник

AK

Artem Kuraev in Camunda BPM Group
Ну так если не было коллбека - у вас умерла инфраструктура. Когда она поднимается - всё пойдёт выполняться в штатном режиме
источник

d

denis.che in Camunda BPM Group
да, но пока она будет подниматься у таски нито количество попыток не будет уменьшать и она будет повторяться до бесконечности....
а хотелось бы чтобы она упала после нескольких попыток
источник

AK

Artem Kuraev in Camunda BPM Group
Так нет, если её никто не берёт - она и не делается
источник

AK

Artem Kuraev in Camunda BPM Group
Тут немного подход другой: для движка выполнение этой задачи внешнее и он её не контролирует. Сама концепция такая. Всё, что он может - ждать что ему сообщат что с задачей либо разблокировать её так и не дождавшись
источник

d

denis.che in Camunda BPM Group
ну мы ее один раз взяли, залочили, послали запрос в асинхронный сервис, нам ответили 200... а колбэк никогда не пришел...
она разблокируется и снова возьмется в работу. Но ей тогда количество попыток никто не уменьшит
источник

AK

Artem Kuraev in Camunda BPM Group
Ну так по самой концепции это не нужно
источник

AK

Artem Kuraev in Camunda BPM Group
Просто ваш сервис он должен быть спроектирован так, чтобы либо отвечать что он сломался либо допускать перевызов
источник

d

denis.che in Camunda BPM Group
ну в идеале, если что-то пошло не так мы должны всегда получить колбек с ошибкой,
но тем не менее могут быть ситуации, когда он не дойдет...
хотелось бы в этом случае (также как и при колбеке с ошибкой) уменьшить количество попыток
источник

R

Ruslan Kadyrbaev in Camunda BPM Group
denis.che
ну в идеале, если что-то пошло не так мы должны всегда получить колбек с ошибкой,
но тем не менее могут быть ситуации, когда он не дойдет...
хотелось бы в этом случае (также как и при колбеке с ошибкой) уменьшить количество попыток
ну случаев когда таску забрали (200) и не сделали complete/failure не должно быть много (из-за инфраструктуры)
источник

R

Ruslan Kadyrbaev in Camunda BPM Group
инфраструктура ляжет так уж ляжет до конца
источник

R

Ruslan Kadyrbaev in Camunda BPM Group
другое дело если количество retry жестко лимититовано (+1 не допустим)
источник

d

denis.che in Camunda BPM Group
тут будет не +1, а + неопределенное количество, пока нам не ответят, что не очень хоршо

ну может, например дело в ошибке во внешнем микросервисе... он ловит НПЕ и не отсылает колбек с ошибкой..
просто в этом случае мы его будем ретраить до бесконечности. Хотелось бы все-таки избегать подобных ситуайций...

можно конечно при получении еррор колбека не уменьшать ноличество попыток, а в планировщике перед fetchAndLock искать все просроченные таски и уменьшать у них.

Но тут тоже есть два нюанса:
1. в случаее последней попытки при получении еррор колбека мы получим инцидент только постле задержки между ретраями, а не сразу

2. надо быть аккуратнее в случае кластера, там можно отхвать оптимистик локиг эксепшены, их тоже надо разруливать как-то
источник
2019 October 08

В

Виталий in Camunda BPM Group
Так получилось что у меня несколько БП начинаются с одинаковых действий, и я решил вынести их в отдельный бизнес-процесс. Какие лучшие практики можете посоветовать, чтобы закончить процесс запуском другого процесса со всеми переменными? Уже глаз замылен, в гугле ничего не нахожу
источник

DK

Denis Kotov in Camunda BPM Group
мессадж отправить
источник

В

Виталий in Camunda BPM Group
и переменные надо все перечислять или как то можно просто Variables?
источник

DK

Denis Kotov in Camunda BPM Group
все перечислять . но вообще  если их много, то шото не то
источник

В

Виталий in Camunda BPM Group
Понял, спасибо!
источник