public static BpmnModelInstance prepareMessageEventProcess() { return Bpmn.createExecutableProcess(PROCESS_ID) .startEvent() .intermediateThrowEvent(FAILING_EVENT) .camundaAsyncBefore(true) .camundaFailedJobRetryTimeCycle(SCHEDULE) .message(MESSAGE) .serviceTask() .camundaClass(FailingDelegate.class.getName()) .done(); }
public static BpmnModelInstance prepareEscalationEventProcess() { return Bpmn.createExecutableProcess(PROCESS_ID) .startEvent() .intermediateThrowEvent(FAILING_EVENT) .camundaAsyncBefore(true) .camundaFailedJobRetryTimeCycle(SCHEDULE) .escalation(MESSAGE) .serviceTask() .camundaClass(FailingDelegate.class.getName()) .endEvent() .done(); }
public static BpmnModelInstance prepareSignalEventProcess() { BpmnModelInstance modelInstance = Bpmn.createExecutableProcess(PROCESS_ID) .startEvent() .intermediateThrowEvent(FAILING_EVENT) .camundaAsyncBefore(true) .camundaFailedJobRetryTimeCycle(SCHEDULE) .signal(MESSAGE) .serviceTask() .camundaClass(FailingDelegate.class.getName()) .endEvent() .done(); return modelInstance; }
public static BpmnModelInstance prepareCompensationEventProcess() { return Bpmn.createExecutableProcess(PROCESS_ID) .startEvent() .subProcess("subProcess") .embeddedSubProcess() .startEvent() .endEvent() .subProcessDone() .intermediateThrowEvent(FAILING_EVENT) .camundaAsyncBefore(true) .camundaFailedJobRetryTimeCycle(SCHEDULE) .compensateEventDefinition() .compensateEventDefinitionDone() .serviceTask() .camundaClass(FailingDelegate.class.getName()) .endEvent() .done(); }
public void testRetryOnServiceTaskLikeMessageThrowEvent() { // given BpmnModelInstance bpmnModelInstance = Bpmn.createExecutableProcess("process") .startEvent() .intermediateThrowEvent() .camundaAsyncBefore() .camundaFailedJobRetryTimeCycle("R10/PT5S") .messageEventDefinition("messageDefinition") .message("message") .messageEventDefinitionDone() .endEvent() .done(); MessageEventDefinition messageDefinition = bpmnModelInstance.getModelElementById("messageDefinition"); messageDefinition.setCamundaClass(FailingDelegate.class.getName()); deployment(bpmnModelInstance); runtimeService.startProcessInstanceByKey("process"); Job job = managementService.createJobQuery().singleResult(); // when job fails try { managementService.executeJob(job.getId()); } catch (Exception e) { // ignore } // then job = managementService.createJobQuery().singleResult(); Assert.assertEquals(9, job.getRetries()); }
public static BpmnModelInstance prepareMessageEventProcess() { return Bpmn.createExecutableProcess(PROCESS_ID) .startEvent() .intermediateThrowEvent(FAILING_EVENT) .camundaAsyncBefore(true) .camundaFailedJobRetryTimeCycle(SCHEDULE) .message(MESSAGE) .serviceTask() .camundaClass(FailingDelegate.class.getName()) .done(); }
public static BpmnModelInstance prepareEscalationEventProcess() { return Bpmn.createExecutableProcess(PROCESS_ID) .startEvent() .intermediateThrowEvent(FAILING_EVENT) .camundaAsyncBefore(true) .camundaFailedJobRetryTimeCycle(SCHEDULE) .escalation(MESSAGE) .serviceTask() .camundaClass(FailingDelegate.class.getName()) .endEvent() .done(); }
public static BpmnModelInstance prepareSignalEventProcess() { BpmnModelInstance modelInstance = Bpmn.createExecutableProcess(PROCESS_ID) .startEvent() .intermediateThrowEvent(FAILING_EVENT) .camundaAsyncBefore(true) .camundaFailedJobRetryTimeCycle(SCHEDULE) .signal(MESSAGE) .serviceTask() .camundaClass(FailingDelegate.class.getName()) .endEvent() .done(); return modelInstance; }
public static BpmnModelInstance prepareCompensationEventProcess() { return Bpmn.createExecutableProcess(PROCESS_ID) .startEvent() .subProcess("subProcess") .embeddedSubProcess() .startEvent() .endEvent() .subProcessDone() .intermediateThrowEvent(FAILING_EVENT) .camundaAsyncBefore(true) .camundaFailedJobRetryTimeCycle(SCHEDULE) .compensateEventDefinition() .compensateEventDefinitionDone() .serviceTask() .camundaClass(FailingDelegate.class.getName()) .endEvent() .done(); }
public void testRetryOnServiceTaskLikeMessageThrowEvent() { // given BpmnModelInstance bpmnModelInstance = Bpmn.createExecutableProcess("process") .startEvent() .intermediateThrowEvent() .camundaAsyncBefore() .camundaFailedJobRetryTimeCycle("R10/PT5S") .messageEventDefinition("messageDefinition") .message("message") .messageEventDefinitionDone() .endEvent() .done(); MessageEventDefinition messageDefinition = bpmnModelInstance.getModelElementById("messageDefinition"); messageDefinition.setCamundaClass(FailingDelegate.class.getName()); deployment(bpmnModelInstance); runtimeService.startProcessInstanceByKey("process"); Job job = managementService.createJobQuery().singleResult(); // when job fails try { managementService.executeJob(job.getId()); } catch (Exception e) { // ignore } // then job = managementService.createJobQuery().singleResult(); Assert.assertEquals(9, job.getRetries()); }