use of org.kie.kogito.jobs.api.Job in project kogito-runtimes by kiegroup.
the class SpringRestJobsService method scheduleProcessInstanceJob.
@Override
public String scheduleProcessInstanceJob(ProcessInstanceJobDescription description) {
String callback = getCallbackEndpoint(description);
LOGGER.debug("Job to be scheduled {} with callback URL {}", description, callback);
final Job job = buildJob(description, callback);
ResponseEntity<String> result = restTemplate.postForEntity(getJobsServiceUri(), job, String.class);
if (result.getStatusCode().ordinal() == 200) {
LOGGER.debug("Creating of the job {} done with status code {} ", job, result.getStatusCode());
}
return job.getId();
}
use of org.kie.kogito.jobs.api.Job in project kogito-runtimes by kiegroup.
the class VertxJobsService method scheduleProcessInstanceJob.
@Override
public String scheduleProcessInstanceJob(ProcessInstanceJobDescription description) {
String callback = getCallbackEndpoint(description);
LOGGER.debug("Job to be scheduled {} with callback URL {}", description, callback);
final Job job = buildJob(description, callback);
client.post(JOBS_PATH).sendJson(job, res -> {
if (res.succeeded() && res.result().statusCode() == 200) {
LOGGER.debug("Creating of the job {} done with status code {} ", job, res.result().statusCode());
} else {
LOGGER.error("Scheduling of job {} failed with response code {}", job, res.result().statusCode(), res.cause());
}
});
return job.getId();
}
use of org.kie.kogito.jobs.api.Job in project kogito-runtimes by kiegroup.
the class VertxJobsServiceTest method testScheduleProcessInstanceJob.
@Test
void testScheduleProcessInstanceJob(@Mock HttpRequest<Buffer> request) {
when(webClient.post(anyString())).thenReturn(request);
ProcessInstanceJobDescription processInstanceJobDescription = ProcessInstanceJobDescription.of(new TimerJobId(123l), ExactExpirationTime.now(), "processInstanceId", "processId");
tested.scheduleProcessInstanceJob(processInstanceJobDescription);
verify(webClient).post("/jobs");
ArgumentCaptor<Job> jobArgumentCaptor = forClass(Job.class);
verify(request).sendJson(jobArgumentCaptor.capture(), any(Handler.class));
Job job = jobArgumentCaptor.getValue();
assertThat(job.getId()).isEqualTo(processInstanceJobDescription.id());
assertThat(job.getExpirationTime()).isEqualTo(processInstanceJobDescription.expirationTime().get());
assertThat(job.getProcessInstanceId()).isEqualTo(processInstanceJobDescription.processInstanceId());
assertThat(job.getProcessId()).isEqualTo(processInstanceJobDescription.processId());
}
use of org.kie.kogito.jobs.api.Job in project kogito-runtimes by kiegroup.
the class JobCloudEventDeserializerTest method deserializeCreateProcessInstanceJobRequestEvent.
@Test
void deserializeCreateProcessInstanceJobRequestEvent() throws Exception {
JobCloudEvent<?> result = deserializer.deserialize(readFileContent(CREATE_PROCESS_INSTANCE_JOB_REQUEST_EVENT_RESOURCE));
assertThat(result).isInstanceOf(CreateProcessInstanceJobRequestEvent.class);
CreateProcessInstanceJobRequestEvent event = (CreateProcessInstanceJobRequestEvent) result;
assertBaseFields(event);
assertProcessContextFields(event);
Job job = event.getData();
assertThat(job).isNotNull();
assertThat(job.getId()).isEqualTo(JOB_ID);
assertThat(job.getExpirationTime()).isEqualTo(EXPIRATION_TIME);
assertThat(job.getPriority()).isEqualTo(PRIORITY);
assertThat(job.getCallbackEndpoint()).isEqualTo(CALLBACK_ENDPOINT);
assertThat(job.getProcessInstanceId()).isEqualTo(PROCESS_INSTANCE_ID);
assertThat(job.getProcessId()).isEqualTo(PROCESS_ID);
assertThat(job.getRootProcessInstanceId()).isEqualTo(ROOT_PROCESS_INSTANCE_ID);
assertThat(job.getRootProcessId()).isEqualTo(ROOT_PROCESS_ID);
assertThat(job.getNodeInstanceId()).isEqualTo(NODE_INSTANCE_ID);
assertThat(job.getRepeatInterval()).isEqualTo(REPEAT_INTERVAL);
assertThat(job.getRepeatLimit()).isEqualTo(REPEAT_LIMIT);
}
use of org.kie.kogito.jobs.api.Job in project kogito-runtimes by kiegroup.
the class JobCloudEventSerializerTest method serializeCreateProcessInstanceJobRequestEvent.
@Test
void serializeCreateProcessInstanceJobRequestEvent() throws Exception {
CreateProcessInstanceJobRequestEvent event = CreateProcessInstanceJobRequestEvent.builder().id(ID).specVersion(SPEC_VERSION).source(SOURCE).time(TIME).subject(SUBJECT).processInstanceId(PROCESS_INSTANCE_ID).processId(PROCESS_ID).rootProcessInstanceId(ROOT_PROCESS_INSTANCE_ID).rootProcessId(ROOT_PROCESS_ID).kogitoAddons(KOGITO_ADDONS).job(new Job(JOB_ID, EXPIRATION_TIME, SerializationTestConstants.PRIORITY, CALLBACK_ENDPOINT, PROCESS_INSTANCE_ID, ROOT_PROCESS_INSTANCE_ID, PROCESS_ID, ROOT_PROCESS_ID, REPEAT_INTERVAL, REPEAT_LIMIT, NODE_INSTANCE_ID)).build();
String json = serializer.serialize(event);
assertThat(json).isNotNull();
JsonNode jsonNode = OBJECT_MAPPER.readTree(json);
assertHasTotalFields(jsonNode, 12);
assertHasFieldWithValue(jsonNode, "type", CREATE_PROCESS_INSTANCE_JOB_REQUEST);
assertHasBaseFields(jsonNode);
assertHasProcessContextFields(jsonNode);
JsonNode dataJsonNode = jsonNode.get("data");
assertThat(dataJsonNode).isNotNull();
assertHasTotalFields(dataJsonNode, 11);
assertHasFieldWithValue(dataJsonNode, "id", JOB_ID);
assertHasFieldWithValue(dataJsonNode, "expirationTime", EXPIRATION_TIME.toString());
assertHasFieldWithValue(dataJsonNode, "priority", Integer.toString(PRIORITY));
assertHasFieldWithValue(dataJsonNode, "callbackEndpoint", CALLBACK_ENDPOINT);
assertHasFieldWithValue(dataJsonNode, "processInstanceId", PROCESS_INSTANCE_ID);
assertHasFieldWithValue(dataJsonNode, "rootProcessInstanceId", ROOT_PROCESS_INSTANCE_ID);
assertHasFieldWithValue(dataJsonNode, "processId", PROCESS_ID);
assertHasFieldWithValue(dataJsonNode, "rootProcessId", ROOT_PROCESS_ID);
assertHasFieldWithValue(dataJsonNode, "nodeInstanceId", NODE_INSTANCE_ID);
assertHasFieldWithValue(dataJsonNode, "repeatInterval", Long.toString(REPEAT_INTERVAL));
assertHasFieldWithValue(dataJsonNode, "repeatLimit", Integer.toString(REPEAT_LIMIT));
}
Aggregations