private void assertJobRecordIsEqualTo(final JobRecord jobRecord, final JobRecord expected) { assertThat(jobRecord.getDeadline()).isEqualTo(expected.getDeadline()); assertThat(jobRecord.getWorker()).isEqualTo(expected.getWorker()); assertThat(jobRecord.getRetries()).isEqualTo(expected.getRetries()); assertThat(jobRecord.getType()).isEqualTo(expected.getType()); assertThat(jobRecord.getCustomHeaders()).isEqualTo(expected.getCustomHeaders()); assertThat(jobRecord.getPayload()).isEqualTo(expected.getPayload()); }
private void assertJobRecordIsEqualTo(final JobRecord jobRecord, final JobRecord expected) { assertThat(jobRecord.getDeadline()).isEqualTo(expected.getDeadline()); assertThat(jobRecord.getWorker()).isEqualTo(expected.getWorker()); assertThat(jobRecord.getRetries()).isEqualTo(expected.getRetries()); assertThat(jobRecord.getType()).isEqualTo(expected.getType()); assertThat(jobRecord.getCustomHeaders()).isEqualTo(expected.getCustomHeaders()); assertThat(jobRecord.getPayload()).isEqualTo(expected.getPayload()); }
@Override public void onCommand(TypedRecord<JobRecord> command, CommandControl<JobRecord> commandControl) { final long jobKey = command.getKey(); final JobState.State jobState = state.getState(jobKey); if (jobState == State.NOT_FOUND) { commandControl.reject(RejectionType.NOT_FOUND, String.format(NO_JOB_FOUND_MESSAGE, jobKey)); } else if (jobState == State.FAILED) { commandControl.reject(RejectionType.INVALID_STATE, String.format(FAILED_JOB_MESSAGE, jobKey)); } else { final JobRecord job = state.getJob(jobKey); job.setPayload(command.getValue().getPayload()); state.delete(jobKey, job); commandControl.accept(JobIntent.COMPLETED, job); } } }
@Override public void onCommand(TypedRecord<JobRecord> command, CommandControl<JobRecord> commandControl) { final long jobKey = command.getKey(); final JobState.State jobState = state.getState(jobKey); if (jobState == State.NOT_FOUND) { commandControl.reject(RejectionType.NOT_FOUND, String.format(NO_JOB_FOUND_MESSAGE, jobKey)); } else if (jobState == State.FAILED) { commandControl.reject(RejectionType.INVALID_STATE, String.format(FAILED_JOB_MESSAGE, jobKey)); } else { final JobRecord job = state.getJob(jobKey); job.setPayload(command.getValue().getPayload()); state.delete(jobKey, job); commandControl.accept(JobIntent.COMPLETED, job); } } }
@Override public void processRecord( final TypedRecord<JobRecord> record, final TypedResponseWriter responseWriter, final TypedStreamWriter streamWriter) { final JobRecord jobEvent = record.getValue(); final JobHeaders jobHeaders = jobEvent.getHeaders(); final long elementInstanceKey = jobHeaders.getElementInstanceKey(); final ElementInstance elementInstance = workflowState.getElementInstanceState().getInstance(elementInstanceKey); if (elementInstance != null) { final WorkflowInstanceRecord value = elementInstance.getValue(); value.setPayload(jobEvent.getPayload()); streamWriter.appendFollowUpEvent( elementInstanceKey, WorkflowInstanceIntent.ELEMENT_COMPLETING, value); elementInstance.setState(WorkflowInstanceIntent.ELEMENT_COMPLETING); elementInstance.setJobKey(-1); elementInstance.setValue(value); workflowState .getElementInstanceState() .getVariablesState() .setPayload(elementInstanceKey, jobEvent.getPayload()); } } }
value.setPayload(jobEvent.getPayload()); .getElementInstanceState() .getVariablesState() .setPayload(elementInstanceKey, jobEvent.getPayload());
public static ActivateJobsResponse toActivateJobsResponse( long key, JobBatchRecord brokerResponse) { final ActivateJobsResponse.Builder responseBuilder = ActivateJobsResponse.newBuilder(); final Iterator<LongValue> jobKeys = brokerResponse.jobKeys().iterator(); final Iterator<JobRecord> jobs = brokerResponse.jobs().iterator(); while (jobKeys.hasNext() && jobs.hasNext()) { final LongValue jobKey = jobKeys.next(); final JobRecord job = jobs.next(); final ActivatedJob activatedJob = ActivatedJob.newBuilder() .setKey(jobKey.getValue()) .setType(bufferAsString(job.getType())) .setJobHeaders(fromBrokerJobHeaders(job.getHeaders())) .setCustomHeaders(bufferAsJson(job.getCustomHeaders())) .setWorker(bufferAsString(job.getWorker())) .setRetries(job.getRetries()) .setDeadline(job.getDeadline()) .setPayload(bufferAsJson(job.getPayload())) .build(); responseBuilder.addJobs(activatedJob); } return responseBuilder.build(); }
private JobRecordValue ofJobRecord(JobRecord record) { final JobHeaders jobHeaders = record.getHeaders(); final HeadersImpl headers = new HeadersImpl( asString(jobHeaders.getBpmnProcessId()), asString(jobHeaders.getElementId()), jobHeaders.getElementInstanceKey(), jobHeaders.getWorkflowInstanceKey(), jobHeaders.getWorkflowKey(), jobHeaders.getWorkflowDefinitionVersion()); final Instant deadline; if (record.getDeadline() != Protocol.INSTANT_NULL_VALUE) { deadline = Instant.ofEpochMilli(record.getDeadline()); } else { deadline = null; } return new JobRecordValueImpl( objectMapper, asJson(record.getPayload()), asString(record.getType()), asString(record.getWorker()), deadline, headers, asMsgPackMap(record.getCustomHeaders()), record.getRetries(), asString(record.getErrorMessage())); }
private JobRecordValue ofJobRecord(JobRecord record) { final JobHeaders jobHeaders = record.getHeaders(); final HeadersImpl headers = new HeadersImpl( asString(jobHeaders.getBpmnProcessId()), asString(jobHeaders.getElementId()), jobHeaders.getElementInstanceKey(), jobHeaders.getWorkflowInstanceKey(), jobHeaders.getWorkflowKey(), jobHeaders.getWorkflowDefinitionVersion()); final Instant deadline; if (record.getDeadline() != Protocol.INSTANT_NULL_VALUE) { deadline = Instant.ofEpochMilli(record.getDeadline()); } else { deadline = null; } return new JobRecordValueImpl( objectMapper, asJson(record.getPayload()), asString(record.getType()), asString(record.getWorker()), deadline, headers, asMsgPackMap(record.getCustomHeaders()), record.getRetries(), asString(record.getErrorMessage())); }