Size: a a a

Camunda BPM Group

2021 January 19

DK

Denis Kotov in Camunda BPM Group
В общем виде задача сильно больно решается
источник

EZ

Edward Zakharov in Camunda BPM Group
Artur Dauer
Довели дело до конца или забили и все заново под Камунду переписали
да довели
источник

EZ

Edward Zakharov in Camunda BPM Group
это реально перенести на камунду, но вопрос на сколько это надо. Потому что это довольно большая и долгая разработка
источник

EZ

Edward Zakharov in Camunda BPM Group
ну и не только разработка
источник
2021 January 20

М

Манап in Camunda BPM Group
Всем привет.
Подскажите, пожалуйста, есть сервисТаск,  вызывает рест апи.
Почему то сервисТаск выполняется несколько раз. А в истории act_hi_actinst по этому сервисТаску одна запись. В каких случаях может выполнятся несколько раз?
источник

ММ

Максим Монин... in Camunda BPM Group
В момент закрытия задачи, посылается complete, но из-за ошибки, например optimistic lock, задача не закрыта, идёт откат транзакции, и снова вызывается. Вторая причина - задача закрывается с failed и retry count больше 1, и она будет спамить, пока не поставишь retry count 0. Третья причина далее до следующей точки сохранения идёт какой то код, например script task, если в нем ошибка, на complete система не просто сохранят транзакцию о задаче а сразу и весь код до след точки сохранения,там идёт вылет и откат транзакции, и задача снова посворяется. Это наиболее часто возникающие повторы.
источник

М

Манап in Camunda BPM Group
Спасибо большое! Только что прочитал о первом случае.

https://docs.camunda.org/manual/7.8/user-guide/process-engine/transactions-in-processes/#optimistic-locking
источник

М

Манап in Camunda BPM Group
Скорей всего это, так как у меня этот сервисТаск последний.  Внешний процесс как раз запускает параллельно.
источник

ММ

Максим Монин... in Camunda BPM Group
Есть один трюк, который позволяет почти всегда решить проблему optimistic locking. В момент сохранения и посылки события complete, нужно ловить код возврата. Если там есть engine error 500, optimistic locking, или любая другая ошибка, можно сразу до несколько раз повторить complete, и я у себя сделал лимит 3 попытки. Тогда этот вариант даже в стресс тестах, когда rest api перегружено, норм работает
источник

АЦ

Андрей Царев... in Camunda BPM Group
Максим Монин
Есть один трюк, который позволяет почти всегда решить проблему optimistic locking. В момент сохранения и посылки события complete, нужно ловить код возврата. Если там есть engine error 500, optimistic locking, или любая другая ошибка, можно сразу до несколько раз повторить complete, и я у себя сделал лимит 3 попытки. Тогда этот вариант даже в стресс тестах, когда rest api перегружено, норм работает
Я так тоже делал, но это решение в стиле: "чем больше джип тем дальше идти за трактором" - в любом случае будут ситуации когда попыток нехватило
источник

ММ

Максим Монин... in Camunda BPM Group
согласен, что оно не устраняет проблему на 100%, но 99% уходит. Не всегда повтор задачи приводит к катастрофе. А если может привести изза ну там двойного списания средств, то это нужно понимать что повтор возможен, и обработать на уровне самого внешнего модуля, обрабатывающего эту задачу.
источник

ММ

Максим Монин... in Camunda BPM Group
Я это делал по другой причине. Если задачу не удается закомитить. Изза держания Exclusive lock например на 50 секунд, следующий повтор идет через минуту. Что резко замедляет скорость проходжения бизнес процесса по цепочке вызовов. Если этот фактор критичен (общее время выполнения бизнес процесса), то оно того стоит.
источник

DG

Dmitriy Gavrilenko in Camunda BPM Group
В базе в таблице act_hi_actinst наплодилось 5кк записей ивента из процесса. В чем может быть проблема?
источник

НЩ

Николай Щепилов... in Camunda BPM Group
Всем привет! Подскажите по скриптингу, плиз, почему-то когда-то давно мы у себя решили не использовать Groovy но оно нужно иногда пользую JS. (почему так - я не помню уже) Я правильно  понимаю, что вообще нет разницы, я буду Groovy использовать или JS внутри bpmn (знаю, что скрипты - зло, но пока что удобно)? (используем обычно в 2 кейсах - пихнуть переменку в какой-то JSON в контексте или подрезать переменку строковую)
источник

DK

Denis Kotov in Camunda BPM Group
разница только в том, есть ли в вашей системе в проде интерпретатор скриптов, в alpine помоему JS вырезан
источник

DK

Denis Kotov in Camunda BPM Group
контейнерозависимость это еще один повод отказаться от скриптов
источник

EZ

Edward Zakharov in Camunda BPM Group
Dmitriy Gavrilenko
В базе в таблице act_hi_actinst наплодилось 5кк записей ивента из процесса. В чем может быть проблема?
У вас что-то зациклилось может?
источник

DG

Dmitriy Gavrilenko in Camunda BPM Group
Edward Zakharov
У вас что-то зациклилось может?
Нет, просто ивент с условием висит
источник

НЩ

Николай Щепилов... in Camunda BPM Group
Denis Kotov
контейнерозависимость это еще один повод отказаться от скриптов
это следующий шаг
источник

НЩ

Николай Щепилов... in Camunda BPM Group
Denis Kotov
разница только в том, есть ли в вашей системе в проде интерпретатор скриптов, в alpine помоему JS вырезан
спасибо!
источник