Size: a a a

Camunda BPM Group

2019 December 05

AT

Anastasia Trofimova in Camunda BPM Group
#Вакансия #Москва
Друзья, добрый день!
Я из компании Юнитариус, мы занимаемся разработкой решений для финсектора (Банки и Страховые ТОП-30). Одни из лидеров по разработке на OpenSource.
Сейчас расширяем команду под 2 новых проекта:
1.  ДБО ФЛ для Банка ТОП-30.
У текущего ДБО очень низкое быстродействие, поэтому принято решение полностью переписать бэк на новой архитектуре.
Стек - Java 8, Spring Boot, Camel, Camunda, Liquibase, MyBatis, PostgreSQL
Старт проекта – середина декабря, начало активной разработки – январь

2.  Разработка с 0 В2В платформы для Страховой ТОП-20.
Цель платформы – возможность для партнеров дистанционно оформлять полисы страховой компании (аналог партнерского АПИ).
Стек - Java 8, Spring, Camel, Camunda, Artemis, MyBatis, PostgreSQL, фронт (отдельные разработчики)– на React  
Старт проекта – январь, начало активной разработки – конец января-февраль

О нас:
- Мы не сторонники бюрократии и быстро принимаем решения;
- «Не стоим над душой», а оцениваем людей по результату. У нас есть возможность быстро вырасти профессионально, вертикально и финансово.
- Гибкое начало рабочего дня - удобно и жаворонкам и совам, есть возможность частичной удаленки;
- Территориально – м. Пацелецкая/Пролетарская, 10-15 мин пешком от метро;
- Для кандидатов из других городов, готовы рассматривать помощь с релокацией.

Буду рада обсудить детали в личке😊 – @trofmova_av
источник

SS

Sergey Smagin in Camunda BPM Group
Пытаемся организовать X повторных вызовов External Task с задержкой между попытками в Y сек в случае возврата ошибки из задачи (не инцидента). Приходится использовать Gateway + Timer + свои переменные и заворачивать поток обратно. Выглядит костыльно. Как можно сделать то же самое встроенными средствами?
источник

АС

Алдияр Сахан... in Camunda BPM Group
Dmitrii Goncharov
Да, смаппить туда нужные проперти и возвращать его
что то нужно писать в контроллеру?
источник

АС

Алдияр Сахан... in Camunda BPM Group
тоист я создал ДТО
источник

АС

Алдияр Сахан... in Camunda BPM Group
Сюда что то нужно добавить
источник

MC

Maxim Chernyavsky in Camunda BPM Group
Sergey Smagin
Пытаемся организовать X повторных вызовов External Task с задержкой между попытками в Y сек в случае возврата ошибки из задачи (не инцидента). Приходится использовать Gateway + Timer + свои переменные и заворачивать поток обратно. Выглядит костыльно. Как можно сделать то же самое встроенными средствами?
источник

SS

Sergey Smagin in Camunda BPM Group
Спасибо.
источник

MC

Maxim Chernyavsky in Camunda BPM Group
там правда не очень много ответов :) но то что у вас это явный антипаттерн. В целом я тоже бы послушал кто как реализует retry на сервис таксках и какие есть правильные паттерны, чтобы не напороться на двойное исполнение
источник

R

Ruslan Kadyrbaev in Camunda BPM Group
Maxim Chernyavsky
там правда не очень много ответов :) но то что у вас это явный антипаттерн. В целом я тоже бы послушал кто как реализует retry на сервис таксках и какие есть правильные паттерны, чтобы не напороться на двойное исполнение
+
источник

R

Ruslan Kadyrbaev in Camunda BPM Group
External tasks retry  (которая из коробки) нужно "окружить" довольно сложным кодом клиентским
источник

DG

Dmitrii Goncharov in Camunda BPM Group
Алдияр Сахан
Сюда что то нужно добавить
Возвращать изконтроллера не Task, а ДТО
источник

АС

Алдияр Сахан... in Camunda BPM Group
public Task getTask вместо —> public TaskDto getTask
источник

АС

Алдияр Сахан... in Camunda BPM Group
Dmitrii Goncharov
Возвращать изконтроллера не Task, а ДТО
правильно?
источник

DG

Dmitrii Goncharov in Camunda BPM Group
Алдияр Сахан
правильно?
Да
источник

АС

Алдияр Сахан... in Camunda BPM Group
так ругает
источник

DG

Dmitrii Goncharov in Camunda BPM Group
Алдияр Сахан
так ругает
Поменять в интерфейсе возвращаемый тип на ДТО
источник

АС

Алдияр Сахан... in Camunda BPM Group
Но результать так
источник

SZ

Sergey Z in Camunda BPM Group
Пишите конвертер из TaskEntity в MyTaskDto, заполняйте в нем требуемые поля
источник

АС

Алдияр Сахан... in Camunda BPM Group
Sergey Z
Пишите конвертер из TaskEntity в MyTaskDto, заполняйте в нем требуемые поля
MyTaskDto вместо TaskEntity?
источник

АС

Алдияр Сахан... in Camunda BPM Group
такой метод эсть внутри MyTaskDto :
 public static MyTaskDto fromEntity(Task task) {
       MyTaskDto dto = new MyTaskDto();
       dto.id = task.getId();
       dto.name = task.getName();
       dto.assignee = task.getAssignee();
       dto.created = task.getCreateTime();
       dto.due = task.getDueDate();
       dto.followUp = task.getFollowUpDate();

       if (task.getDelegationState() != null) {
           dto.delegationState = task.getDelegationState().toString();
       }

       dto.description = task.getDescription();
       dto.executionId = task.getExecutionId();
       dto.owner = task.getOwner();
       dto.parentTaskId = task.getParentTaskId();
       dto.priority = task.getPriority();
       dto.processDefinitionId = task.getProcessDefinitionId();
       dto.processInstanceId = task.getProcessInstanceId();
       dto.taskDefinitionKey = task.getTaskDefinitionKey();
       dto.caseDefinitionId = task.getCaseDefinitionId();
       dto.caseExecutionId = task.getCaseExecutionId();
       dto.caseInstanceId = task.getCaseInstanceId();
       dto.suspended = task.isSuspended();
       dto.tenantId = task.getTenantId();

       try {
           dto.formKey = task.getFormKey();
       }
       catch (BadUserRequestException e) {
           // ignore (initializeFormKeys was not called)
       }
       return dto;
   }
источник