private static void springWorkerExample(DataSource dataSource, MySpringWorker mySpringWorker) { // instantiate and start the scheduler somewhere in your application final Scheduler scheduler = Scheduler .create(dataSource) .threads(2) .build(); scheduler.start(); // define a task and a handler that named task, MySpringWorker implements the ExecutionHandler interface final OneTimeTask oneTimeTask = ComposableTask.onetimeTask("my-onetime-task", mySpringWorker); // schedule a future execution for the task with a custom id (currently the only form for context supported) scheduler.scheduleForExecution(LocalDateTime.now().plusDays(1), oneTimeTask.instance("1001")); } public static class MySpringWorker implements ExecutionHandler { public MySpringWorker() { // could be instantiated by Spring } @Override public void execute(TaskInstance taskInstance, ExecutionContext executionContext) { // called when the execution-time is reached System.out.println("Executed task with id="+taskInstance.getId()); } }
private void testFindTaskInstanceWithSearchService( TaskQueryFilterSpec filter, Long taskInstanceId ) { List<Long> resultsIds = new ArrayList<>(); List<TaskInstance> results = queryClient.findHumanTasksWithFilters( QUERY_NAME, filter, 0, 100 ); for ( TaskInstance res : results ) { resultsIds.add( res.getId() ); Assertions.assertThat(res.getInputData()).isNullOrEmpty(); Assertions.assertThat(res.getOutputData()).isNullOrEmpty(); } Assertions.assertThat( results ).isNotNull(); Assertions.assertThat( results ).isNotEmpty(); Assertions.assertThat( resultsIds ).contains( taskInstanceId ); }
assertThat(taskInstance.getId()).isEqualTo(taskSummary.getId());
private void checkTaskStatusAndActualOwner(String containerId, Long taskId, Status status, String actualOwner) { TaskInstance task = taskClient.getTaskInstance(containerId, taskId); assertEquals(taskId, task.getId()); assertEquals(status.toString(), task.getStatus()); assertEquals(actualOwner, task.getActualOwner()); } }
taskInstance.setId( task.getId() ); taskInstance.setName( task.getName() ); taskInstance.setDescription( task.getDescription() );
taskInstance.setId(task.getId()); taskInstance.setName(task.getName()); taskInstance.setDescription(task.getDescription());
taskInstance.setId(task.getId()); taskInstance.setName(task.getName()); taskInstance.setDescription(task.getDescription());
@Override public TaskAssignmentSummary apply(final TaskInstance task, final IdentityProvider identityProvider) { if (task == null) { return null; } else { final TaskAssignmentSummary summary = new TaskAssignmentSummary(); summary.setTaskId(task.getId()); summary.setActualOwner(task.getActualOwner()); summary.setTaskName(task.getName()); summary.setPotOwnersString(task.getPotentialOwners()); summary.setCreatedBy(task.getCreatedBy()); summary.setBusinessAdmins(task.getBusinessAdmins()); summary.setStatus(task.getStatus()); summary.setDelegationAllowed(isDelegationAllowed(task, identityProvider)); summary.setForwardAllowed(isForwardAllowed(task, identityProvider)); return summary; } }
assertEquals(PROCESS_ID_USERTASK, taskInstance.getProcessId()); assertEquals(CONTAINER_ID, taskInstance.getContainerId()); assertEquals(taskSummary.getId(), taskInstance.getId()); assertEquals(-1, taskInstance.getParentId().longValue()); assertEquals(true, taskInstance.getSkipable());
@Test public void testExitUserTask() throws Exception { Long processInstanceId = processClient.startProcess(CONTAINER_ID, PROCESS_ID_USERTASK); assertNotNull(processInstanceId); assertTrue(processInstanceId.longValue() > 0); try { List<TaskSummary> taskList = taskClient.findTasksAssignedAsPotentialOwner(USER_YODA, 0, 10); assertNotNull(taskList); assertEquals(1, taskList.size()); TaskSummary taskSummary = taskList.get(0); assertEquals(Status.Reserved.toString(), taskSummary.getStatus()); // exit task changeUser(USER_ADMINISTRATOR); taskClient.exitTask(CONTAINER_ID, taskSummary.getId(), USER_ADMINISTRATOR); changeUser(USER_YODA); TaskInstance task = taskClient.findTaskById(taskSummary.getId()); assertNotNull(task); assertEquals(taskSummary.getId(), task.getId()); assertEquals(Status.Exited.toString(), task.getStatus()); } finally { processClient.abortProcessInstance(CONTAINER_ID, processInstanceId); changeUser(TestConfig.getUsername()); } }
@Override public TaskSummary apply(final TaskInstance taskInstance) { if (taskInstance == null) { return null; } else { return TaskSummary.builder() .id(taskInstance.getId()) .name(taskInstance.getName()) .description(taskInstance.getDescription()) .status(taskInstance.getStatus()) .priority(taskInstance.getPriority()) .actualOwner(taskInstance.getActualOwner()) .createdBy(taskInstance.getCreatedBy()) .createdOn(taskInstance.getCreatedOn()) .activationTime(taskInstance.getActivationTime()) .expirationTime(taskInstance.getExpirationDate()) .processId(taskInstance.getProcessId()) .processInstanceId(taskInstance.getProcessInstanceId()) .deploymentId(taskInstance.getContainerId()) .parentId(taskInstance.getParentId()) .errorCount(0) .build(); } } }
assertEquals(PROCESS_ID_USERTASK, taskInstance.getProcessId()); assertEquals(CONTAINER_ID, taskInstance.getContainerId()); assertEquals(taskSummary.getId(), taskInstance.getId()); assertEquals(-1, taskInstance.getParentId().longValue()); assertEquals(true, taskInstance.getSkipable());