Size: a a a

Camunda BPM Group

2021 December 01

A

AiT in Camunda BPM Group
{{baseUrl}}/decision-definition/key/:key/evaluate
источник

AS

Alex Shnaider in Camunda BPM Group
Добрый день, недавно работаю с комундой, можно сказать не шарю совсем. Возникла проблема. Есть процесс запускающийся по таймеру раз в минуту. Забирает данные из БД молотит и  обновляет их. Как сделать так чтобы при следующем запуске таймера, если предидущий процесс уже запущен и не завершен новый не запускался? Можно как-то в делегате проверить количество процессов перед началом нового?
источник

А

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

DP

Dmitrii Pisarenko in Camunda BPM Group
Если происходит BPMNError, Вы можете установить переменную процесса на то или иное значение. В тасклисте эта переменная будет видна.
источник

Р

Радмир in Camunda BPM Group
Спасибо
источник

DP

Dmitrii Pisarenko in Camunda BPM Group
Варианты:

1. Пошаманить с Quartzscheduler так, чтобы он запускал новые процессы только, если старый закончился.

2. Изменить логику процесса: См. приложенную картинку.
источник

ММ

Максим Монин... in Camunda BPM Group
Процесс запуститься по таймеру, но в первом операторе вы моете проверить наличие других процессов через CamundaUrl + '/process-instance?processDefinitionKey=' + process rest api
источник

DP

Dmitrii Pisarenko in Camunda BPM Group
А если этот же тест сделать на локальной машине, количество таймаутов такое же или существенно ниже?
источник

DP

Dmitrii Pisarenko in Camunda BPM Group
+1
источник

AS

Alex Shnaider in Camunda BPM Group
всем спасибо за ответы, попробую сначала рекомендацию Андрей с циклом
источник

DP

Dmitrii Pisarenko in Camunda BPM Group
Посмотрите еще на разделы "Diagnosing ACT_RU_JOB", "Diagnosing Job Acquisition" и "Diagnosing the Thread Pool" на https://camunda.com/blog/2019/10/job-executor-what-is-going-on-in-my-process-engine/ .

Описание проблем в этих разделах похожи на Вашу:

> Jobs are acquired only with high delay or never
> A job is available, but not acquired for execution or only with great delay.
> Too much time elapses between acquisition and execution of a job.
источник

A

Artem in Camunda BPM Group
синхронный запрос по ресту и отвал по таймауту это разве не проблема томкета?
источник

DP

Dmitrii Pisarenko in Camunda BPM Group
Может и проблема Томката.

Можно провести такой эксперимент на Камунде, которой больше никто не пользуется:

1. Записать количество задач. А = SELECT COUNT(*) FROM ACT_RU_JOB + SELECT COUNT(*) FROM ACT_HI_JOB.
2. Отправить 1000 запросов в минуту через REST.
3. Снова посмотреть сколько задач в базе. B = SELECT COUNT(*) FROM ACT_RU_JOB + SELECT COUNT(*) FROM ACT_HI_JOB.
Далее есть варианты:
3.1. B-A = 1000. В этом случае проблема не в Томкате, т. к. задачи создались. Тогда нужно смотреть ту ссылку про job executor.
3.2. (B - A) < 1000. В этом случае проблема не в Камунде. Это может быть сеть, это может быть Томкат или еще что-то.
источник

DK

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

EZ

Edward Zakharov in Camunda BPM Group
Да, кажется шедулер лучше делать не средствами камунды, а с помощью других многих готовых решений для java или других языков))
источник

DK

Denis Kotov in Camunda BPM Group
spring batch и всё такое
источник

AS

Alex Shnaider in Camunda BPM Group
в результате делаю с проверкой запущенных процессов и пропуском если уже запущено
источник

DK

Denis Kotov in Camunda BPM Group
всё равно инстансы с проверкой будут рождаться, нафиг они нужны
источник

DK

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

A

AiT in Camunda BPM Group
спасибо за совет, буду копать
источник