@Test public void testRetryOnAsyncStartEvent() throws Exception { BpmnModelInstance bpmnModelInstance = Bpmn.createExecutableProcess("process") .startEvent() .camundaAsyncBefore() .camundaFailedJobRetryTimeCycle("R5/PT5M") .serviceTask() .camundaClass("bar") .endEvent() .done(); testRule.deploy(bpmnModelInstance); ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("process"); assertJobRetries(processInstance, 4); }
public void testRetryOnAsyncStartEvent() throws Exception { BpmnModelInstance bpmnModelInstance = Bpmn.createExecutableProcess("process") .startEvent() .camundaAsyncBefore() .camundaFailedJobRetryTimeCycle("R5/PT5M") .serviceTask() .camundaClass("bar") .endEvent() .done(); deployment(bpmnModelInstance); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss"); Date startDate = simpleDateFormat.parse("2018-01-01T10:00:00"); ClockUtil.setCurrentTime(startDate); runtimeService.startProcessInstanceByKey("process"); Job job = managementService.createJobQuery().singleResult(); // assume Assert.assertEquals(3, job.getRetries()); // when job fails try { managementService.executeJob(job.getId()); } catch (Exception e) { // ignore } // then job = managementService.createJobQuery().singleResult(); Assert.assertEquals(4, job.getRetries()); Date expectedDate = simpleDateFormat.parse("2018-01-01T10:05:00"); assertEquals(expectedDate, ((JobEntity) job).getLockExpirationTime()); }
@Test public void failedJobRetryTimeCycle() { testRule.deployForTenant(TENANT_ONE, Bpmn.createExecutableProcess("failingProcess") .startEvent() .timerWithDuration("PT1M") .camundaFailedJobRetryTimeCycle("R5/PT1M") .serviceTask() .camundaExpression("${failing}") .endEvent() .done()); testRule.deployForTenant(TENANT_TWO, Bpmn.createExecutableProcess("failingProcess") .startEvent() .timerWithDuration("PT1M") .camundaFailedJobRetryTimeCycle("R4/PT1M") .serviceTask() .camundaExpression("${failing}") .endEvent() .done()); List<Job> jobs = managementService.createJobQuery().timers().list(); executeFailingJobs(jobs); Job jobTenantOne = managementService.createJobQuery().tenantIdIn(TENANT_ONE).singleResult(); Job jobTenantTwo = managementService.createJobQuery().tenantIdIn(TENANT_TWO).singleResult(); assertThat(jobTenantOne.getRetries(), is(4)); assertThat(jobTenantTwo.getRetries(), is(3)); }
public void testRetryOnTimerStartEventWithExpression() { BpmnModelInstance bpmnModelInstance = Bpmn.createExecutableProcess("process") .startEvent() .camundaFailedJobRetryTimeCycle("${var}") .timerWithDuration("PT5M") .serviceTask() .camundaClass("bar") .endEvent() .done(); deployment(bpmnModelInstance); Job job = managementService.createJobQuery().singleResult(); // when job fails try { managementService.executeJob(job.getId()); } catch (Exception e) { // ignore } // then job = managementService.createJobQuery().singleResult(); Assert.assertEquals(2, job.getRetries()); // default behaviour }
@Test public void testRetryOnAsyncStartEvent() throws Exception { BpmnModelInstance bpmnModelInstance = Bpmn.createExecutableProcess("process") .startEvent() .camundaAsyncBefore() .camundaFailedJobRetryTimeCycle("R5/PT5M") .serviceTask() .camundaClass("bar") .endEvent() .done(); testRule.deploy(bpmnModelInstance); ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("process"); assertJobRetries(processInstance, 4); }
public void testRetryOnAsyncStartEvent() throws Exception { BpmnModelInstance bpmnModelInstance = Bpmn.createExecutableProcess("process") .startEvent() .camundaAsyncBefore() .camundaFailedJobRetryTimeCycle("R5/PT5M") .serviceTask() .camundaClass("bar") .endEvent() .done(); deployment(bpmnModelInstance); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss"); Date startDate = simpleDateFormat.parse("2018-01-01T10:00:00"); ClockUtil.setCurrentTime(startDate); runtimeService.startProcessInstanceByKey("process"); Job job = managementService.createJobQuery().singleResult(); // assume Assert.assertEquals(3, job.getRetries()); // when job fails try { managementService.executeJob(job.getId()); } catch (Exception e) { // ignore } // then job = managementService.createJobQuery().singleResult(); Assert.assertEquals(4, job.getRetries()); Date expectedDate = simpleDateFormat.parse("2018-01-01T10:05:00"); assertEquals(expectedDate, ((JobEntity) job).getLockExpirationTime()); }
@Test public void failedJobRetryTimeCycle() { testRule.deployForTenant(TENANT_ONE, Bpmn.createExecutableProcess("failingProcess") .startEvent() .timerWithDuration("PT1M") .camundaFailedJobRetryTimeCycle("R5/PT1M") .serviceTask() .camundaExpression("${failing}") .endEvent() .done()); testRule.deployForTenant(TENANT_TWO, Bpmn.createExecutableProcess("failingProcess") .startEvent() .timerWithDuration("PT1M") .camundaFailedJobRetryTimeCycle("R4/PT1M") .serviceTask() .camundaExpression("${failing}") .endEvent() .done()); List<Job> jobs = managementService.createJobQuery().timers().list(); executeFailingJobs(jobs); Job jobTenantOne = managementService.createJobQuery().tenantIdIn(TENANT_ONE).singleResult(); Job jobTenantTwo = managementService.createJobQuery().tenantIdIn(TENANT_TWO).singleResult(); assertThat(jobTenantOne.getRetries(), is(4)); assertThat(jobTenantTwo.getRetries(), is(3)); }
public void testRetryOnTimerStartEventWithExpression() { BpmnModelInstance bpmnModelInstance = Bpmn.createExecutableProcess("process") .startEvent() .camundaFailedJobRetryTimeCycle("${var}") .timerWithDuration("PT5M") .serviceTask() .camundaClass("bar") .endEvent() .done(); deployment(bpmnModelInstance); Job job = managementService.createJobQuery().singleResult(); // when job fails try { managementService.executeJob(job.getId()); } catch (Exception e) { // ignore } // then job = managementService.createJobQuery().singleResult(); Assert.assertEquals(2, job.getRetries()); // default behaviour }