for (Map.Entry<String, Object> entry : workItem.getParameters().entrySet()) { if (entry.getValue() instanceof Object) { ctx.setData(entry.getKey(), entry.getValue()); ctx.setData("_workItemId", String.valueOf(workItemId)); ctx.setData("callbacks", callbacks); ctx.setData("businessKey", this.execKey); Long requestId = this.executor.scheduleRequest(command, ctx); workItem.getParameters().put("requestId", requestId);
@Test public void executorExceptionTest() throws InterruptedException { CommandContext commandContext = new CommandContext(); commandContext.setData("businessKey", UUID.randomUUID().toString()); cachedEntities.put((String) commandContext.getData("businessKey"), new AtomicLong(1)); commandContext.setData("callbacks", "org.jbpm.executor.SimpleIncrementCallback"); commandContext.setData("retries", 0); executorService.scheduleRequest("org.jbpm.executor.ThrowExceptionCommand", commandContext); System.out.println(System.currentTimeMillis() + " >>> Sleeping for 10 secs"); Thread.sleep(10000); List<RequestInfo> inErrorRequests = executorService.getInErrorRequests(); assertEquals(1, inErrorRequests.size()); System.out.println("Error: " + inErrorRequests.get(0)); List<ErrorInfo> errors = executorService.getAllErrors(); System.out.println(" >>> Errors: " + errors); assertEquals(1, errors.size()); }
public void FIXMEfutureRequestTest() throws InterruptedException { CommandContext ctxCMD = new CommandContext(); ctxCMD.setData("businessKey", UUID.randomUUID().toString()); Long requestId = executorService.scheduleRequest("org.jbpm.executor.commands.PrintOutCommand", new Date(new Date().getTime() + 10000), ctxCMD); Thread.sleep(5000); List<RequestInfo> runningRequests = executorService.getRunningRequests(); assertEquals(0, runningRequests.size()); List<RequestInfo> futureQueuedRequests = executorService.getFutureQueuedRequests(); assertEquals(1, futureQueuedRequests.size()); Thread.sleep(10000); List<RequestInfo> completedRequests = executorService.getCompletedRequests(); assertEquals(1, completedRequests.size()); }
@Test public void defaultRequestRetryTest() throws InterruptedException { CommandContext ctxCMD = new CommandContext(); ctxCMD.setData("businessKey", UUID.randomUUID().toString()); executorService.scheduleRequest("org.jbpm.executor.ThrowExceptionCommand", ctxCMD); Thread.sleep(12000); List<RequestInfo> inErrorRequests = executorService.getInErrorRequests(); assertEquals(1, inErrorRequests.size()); List<ErrorInfo> errors = executorService.getAllErrors(); System.out.println(" >>> Errors: " + errors); // Three retries means 4 executions in total 1(regular) + 3(retries) assertEquals(4, errors.size()); }
@Test public void callbackTest() throws InterruptedException { CommandContext commandContext = new CommandContext(); commandContext.setData("businessKey", UUID.randomUUID().toString()); cachedEntities.put((String) commandContext.getData("businessKey"), new AtomicLong(1)); commandContext.setData("callbacks", "org.jbpm.executor.SimpleIncrementCallback"); executorService.scheduleRequest("org.jbpm.executor.commands.PrintOutCommand", commandContext); Thread.sleep(10000); List<RequestInfo> inErrorRequests = executorService.getInErrorRequests(); assertEquals(0, inErrorRequests.size()); List<RequestInfo> queuedRequests = executorService.getQueuedRequests(); assertEquals(0, queuedRequests.size()); List<RequestInfo> executedRequests = executorService.getCompletedRequests(); assertEquals(1, executedRequests.size()); assertEquals(2, ((AtomicLong) cachedEntities.get((String) commandContext.getData("businessKey"))).longValue()); }
@Test public void cancelRequestTest() throws InterruptedException { // The executor is on purpose not started to not fight against race condition // with the request cancelations. CommandContext ctxCMD = new CommandContext(); ctxCMD.setData("businessKey", UUID.randomUUID().toString()); Long requestId = executorService.scheduleRequest("org.jbpm.executor.commands.PrintOutCommand", ctxCMD); // cancel the task immediately executorService.cancelRequest(requestId); List<RequestInfo> cancelledRequests = executorService.getCancelledRequests(); assertEquals(1, cancelledRequests.size()); }
@Test public void simpleExcecutionTest() throws InterruptedException { CommandContext ctxCMD = new CommandContext(); ctxCMD.setData("businessKey", UUID.randomUUID().toString()); executorService.scheduleRequest("org.jbpm.executor.commands.PrintOutCommand", ctxCMD); Thread.sleep(10000); List<RequestInfo> inErrorRequests = executorService.getInErrorRequests(); assertEquals(0, inErrorRequests.size()); List<RequestInfo> queuedRequests = executorService.getQueuedRequests(); assertEquals(0, queuedRequests.size()); List<RequestInfo> executedRequests = executorService.getCompletedRequests(); assertEquals(1, executedRequests.size()); }