Size: a a a

Camunda BPM Group

2021 October 04

R

Ruslan Kadyrbaev in Camunda BPM Group
в таске простой прямой как палка вызов 3-ей системы, без какой либо MQ и ограничения нагрузки
источник

ММ

Максим Монин... in Camunda BPM Group
ну у меня в модели все на external task... изначально делалось... и поэтому все асинхронно, и поэтому execution workers практически всегда свободны - их задача только  проталкивать задачу дальше и дальше ждать коммит и снова проталкивать дальше, исключением является scriptы groovy которые просто конвертируют данные от одного запроса к следующему.
источник

SD

Serg D. in Camunda BPM Group
я так понимаю, тут уже речь про обычные таски, а не external?
источник

R

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

ММ

Максим Монин... in Camunda BPM Group
Кстати реакция workers напрямую связана с параметрами excution job workers. Они не так чтобы ждут всю пачку. Если идет повторный запрос на наличие tasks они появляються и в воркерах - поэтому приходиться часто обращаться к таблицам
источник

SD

Serg D. in Camunda BPM Group
Максим, ты сейчас про job executor?
источник

ММ

Максим Монин... in Camunda BPM Group
то есть у меня вот это стоит:
источник

ММ

Максим Монин... in Camunda BPM Group
<property name="waitTimeInMillis">5</property>
       <property name="maxWait">50</property>
       <property name="lockTimeInMillis">300000</property>
       <property name="backoffTimeInMillis">30</property>
       <property name="maxBackoff">150</property>
источник

ММ

Максим Монин... in Camunda BPM Group
Чем ниже параметры тем быстрее воркеры получают свои задачи
источник

SD

Serg D. in Camunda BPM Group
А понял, все таки про лонг поллинг)
источник

R

Ruslan Kadyrbaev in Camunda BPM Group
именно про ext tasks.  Fetch & полезный код задачи просто в одном потоке исполняются (на самом деле нет, но ожидание есть)
источник

ММ

Максим Монин... in Camunda BPM Group
по факту у меня postgress спамиться однотипными запросами каждые 10 ms
источник

ММ

Максим Монин... in Camunda BPM Group
и как только job executor увидел новую задачу она мгновенно видна и на worker
источник

ММ

Максим Монин... in Camunda BPM Group
даже если она одна и пачка (а у меня стоит до 100 задач в пачке) еще не запонена
источник

SD

Serg D. in Camunda BPM Group
Ну вот в этом сценарии есть масса вариантов. 1 поток который делает fetch&lock и N потоков воркеров.  Если у вас идет запрос на сторонний сервис и вызов лочится. То можно глянуть в сторону реактивщины. Например, project reactor.
источник

OM

Oleg Marchenko in Camunda BPM Group
сочувствую PG)
источник

ММ

Максим Монин... in Camunda BPM Group
Ну что там сочувствовать - это 1 процесс который получает условно 100 запросов к БД в секунду, который выгребает 0-1 записи обычно н каждый запрос но при пиках больше
источник

ММ

Максим Монин... in Camunda BPM Group
Грузит аж 3 процента процессорного времени одного процессора :)))
источник

R

Ruslan Kadyrbaev in Camunda BPM Group
возможно у вас слишком много слушайтелей-воркеров, там вроде раз в 1сек я видел опрос БД
источник

R

Ruslan Kadyrbaev in Camunda BPM Group
fetchAndLock позволяет запросить таски по нескольким топикам сразу
источник