Size: a a a

Camunda BPM Group

2021 March 26

VV

Vladmir Vladmirovich in Camunda BPM Group
Максим Монин
Почему бы нет, я понял что большинство тут java разработчики, поэтому считаю что для них, этот аргумент не значащий глобально
ага понял. Спасибо
источник

IK

Isayakiy Kotletov in Camunda BPM Group
Vladmir Vladmirovich
здесь можно уточнить, ext task как работает вместе с send/receive? Или нет?
не оч понял, никак?
ext task забирает задачу, кидает куда нить в очередь допустим, а потом из другой очереди получает ответ и коммитит таску
источник

VV

Vladmir Vladmirovich in Camunda BPM Group
Isayakiy Kotletov
не оч понял, никак?
ext task забирает задачу, кидает куда нить в очередь допустим, а потом из другой очереди получает ответ и коммитит таску
» ext task забирает задачу, кидает куда нить в очередь допустим - здесь вроде ок)
» а потом из другой очереди получает ответ и коммитит таску - ну да, слушает очередь, допустим, селектит по хедеру и закрывате exttask.
м?
источник

VV

Vladmir Vladmirovich in Camunda BPM Group
таки в чем отличие прям сильное между send/receive и ext task не пойму. Может туплю сори(
источник

IK

Isayakiy Kotletov in Camunda BPM Group
Vladmir Vladmirovich
таки в чем отличие прям сильное между send/receive и ext task не пойму. Может туплю сори(
если делаешь последовательно send recieve то попадаешь в ситуацию, когда у тебя ответ из очереди ответов приходит быстрее, чем токен перейдет на receive
и отхватишь ошибку
дальше можно ретраить конечно, можно че то еще, но на экстренал тасках проще
источник

VV

Vladmir Vladmirovich in Camunda BPM Group
Isayakiy Kotletov
если делаешь последовательно send recieve то попадаешь в ситуацию, когда у тебя ответ из очереди ответов приходит быстрее, чем токен перейдет на receive
и отхватишь ошибку
дальше можно ретраить конечно, можно че то еще, но на экстренал тасках проще
во, истина) я прям хотел это услышать) Спасиб!!!
источник

DK

Denis Kotov in Camunda BPM Group
Isayakiy Kotletov
если делаешь последовательно send recieve то попадаешь в ситуацию, когда у тебя ответ из очереди ответов приходит быстрее, чем токен перейдет на receive
и отхватишь ошибку
дальше можно ретраить конечно, можно че то еще, но на экстренал тасках проще
Гонка сигналов называется, там https://bpmn2.ru/blog/top-25-oshibok-bpmn ещё кстати есть подвохи, в бпмн вообще изи ногу отстрелить
источник

ET

Ed Tsoy in Camunda BPM Group
Isayakiy Kotletov
если делаешь последовательно send recieve то попадаешь в ситуацию, когда у тебя ответ из очереди ответов приходит быстрее, чем токен перейдет на receive
и отхватишь ошибку
дальше можно ретраить конечно, можно че то еще, но на экстренал тасках проще
о, я такой баг словил однажды на тестовом стенде, где была заглушка вместо внешней системы )
источник

ET

Ed Tsoy in Camunda BPM Group
а с External Task отправка и получение - в одном вызове (в одном методе, грубо говоря), а в промежутке Thread.sleep(..), что ли?
источник

IK

Isayakiy Kotletov in Camunda BPM Group
Ed Tsoy
а с External Task отправка и получение - в одном вызове (в одном методе, грубо говоря), а в промежутке Thread.sleep(..), что ли?
не) берешь таску, кидаешь в очередь - все
в другом методе читаешь из очереди - коммитишь в камунду
источник

IK

Isayakiy Kotletov in Camunda BPM Group
полностью асинк получается
источник

VV

Vladmir Vladmirovich in Camunda BPM Group
ну прям норм выглядит
источник

ET

Ed Tsoy in Camunda BPM Group
то есть в External Task у камунды есть вызов для запуска таски и затем другой для её завершения, да?

я просто не читал ничего про external 🙈
источник

DK

Denis Kotov in Camunda BPM Group
Ed Tsoy
то есть в External Task у камунды есть вызов для запуска таски и затем другой для её завершения, да?

я просто не читал ничего про external 🙈
Это как юзер таск
источник

DK

Denis Kotov in Camunda BPM Group
Только для сервиса
источник

VV

Vladmir Vladmirovich in Camunda BPM Group
ага, и вот афтары книги неочень особо правы получается (
источник

IK

Isayakiy Kotletov in Camunda BPM Group
я делаю условно так


Один метод

@Scheduled
getTasks() {
 task =  taskService.receiveTask(timeout = 1000)
 sendToQueue(task)
 taskService.increaseTaskTimeout(task.id, 600_000)
}


Второй

@RabbitListener
receieveResponse(Response resp){
  taskService.commit(resp.correlationId)
}
источник

IK

Isayakiy Kotletov in Camunda BPM Group
Vladmir Vladmirovich
ага, и вот афтары книги неочень особо правы получается (
а там чисто про камунду речь или в целом? token racing не везде есть я так понимаю, где-то поумнее сделан движок
источник

VV

Vladmir Vladmirovich in Camunda BPM Group
ну и вот да, а хотелось бы болевой практики в книжек увидеть) иначе зачем вот все это )
источник

VV

Vladmir Vladmirovich in Camunda BPM Group
но благо есть на опыте)
источник