public BrokerCompleteJobRequest(long key, DirectBuffer payload) { super(ValueType.JOB, JobIntent.COMPLETE); request.setKey(key); requestDto.setPayload(payload); }
@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); } } }
private void activateJobs(TypedStreamWriter streamWriter, JobBatchRecord value) { final Iterator<JobRecord> iterator = value.jobs().iterator(); final Iterator<LongValue> keyIt = value.jobKeys().iterator(); while (iterator.hasNext() && keyIt.hasNext()) { final JobRecord jobRecord = iterator.next(); final LongValue next1 = keyIt.next(); final long key = next1.getValue(); // update state and write follow up event for job record final long elementInstanceKey = jobRecord.getHeaders().getElementInstanceKey(); if (elementInstanceKey >= 0) { final DirectBuffer payload = collectPayload(variableNames, elementInstanceKey); jobRecord.setPayload(payload); } else { jobRecord.setPayload(WorkflowInstanceRecord.EMPTY_PAYLOAD); } // we have to copy the job record because #write will reset the iterator state final ExpandableArrayBuffer copy = new ExpandableArrayBuffer(); jobRecord.write(copy, 0); final JobRecord copiedJob = new JobRecord(); copiedJob.wrap(copy, 0, jobRecord.getLength()); state.activate(key, copiedJob); streamWriter.appendFollowUpEvent(key, JobIntent.ACTIVATED, copiedJob); } }
private void activateJobs(TypedStreamWriter streamWriter, JobBatchRecord value) { final Iterator<JobRecord> iterator = value.jobs().iterator(); final Iterator<LongValue> keyIt = value.jobKeys().iterator(); while (iterator.hasNext() && keyIt.hasNext()) { final JobRecord jobRecord = iterator.next(); final LongValue next1 = keyIt.next(); final long key = next1.getValue(); // update state and write follow up event for job record final long elementInstanceKey = jobRecord.getHeaders().getElementInstanceKey(); if (elementInstanceKey >= 0) { final DirectBuffer payload = collectPayload(variableNames, elementInstanceKey); jobRecord.setPayload(payload); } else { jobRecord.setPayload(WorkflowInstanceRecord.EMPTY_PAYLOAD); } // we have to copy the job record because #write will reset the iterator state final ExpandableArrayBuffer copy = new ExpandableArrayBuffer(); jobRecord.write(copy, 0); final JobRecord copiedJob = new JobRecord(); copiedJob.wrap(copy, 0, jobRecord.getLength()); state.activate(key, copiedJob); streamWriter.appendFollowUpEvent(key, JobIntent.ACTIVATED, copiedJob); } }
private void populateJobFromTask( BpmnStepContext<T> context, WorkflowInstanceRecord value, ExecutableServiceTask serviceTask) { final DirectBuffer headers = serviceTask.getEncodedHeaders(); jobCommand.reset(); jobCommand .setType(serviceTask.getType()) .setRetries(serviceTask.getRetries()) .setPayload(value.getPayload()) .setCustomHeaders(headers) .getHeaders() .setBpmnProcessId(value.getBpmnProcessId()) .setWorkflowDefinitionVersion(value.getVersion()) .setWorkflowKey(value.getWorkflowKey()) .setWorkflowInstanceKey(value.getWorkflowInstanceKey()) .setElementId(serviceTask.getId()) .setElementInstanceKey(context.getRecord().getKey()); } }
@Override public void handle(final BpmnStepContext<ExecutableServiceTask> context) { final WorkflowInstanceRecord value = context.getValue(); final ExecutableServiceTask serviceTask = context.getElement(); jobCommand.reset(); jobCommand .setType(serviceTask.getType()) .setRetries(serviceTask.getRetries()) .setPayload(value.getPayload()) .getHeaders() .setBpmnProcessId(value.getBpmnProcessId()) .setWorkflowDefinitionVersion(value.getVersion()) .setWorkflowKey(value.getWorkflowKey()) .setWorkflowInstanceKey(value.getWorkflowInstanceKey()) .setElementId(serviceTask.getId()) .setElementInstanceKey(context.getRecord().getKey()); final DirectBuffer headers = serviceTask.getEncodedHeaders(); jobCommand.setCustomHeaders(headers); context.getCommandWriter().appendNewCommand(JobIntent.CREATE, jobCommand); } }
.setWorker(wrapString(worker)) .setType(wrapString(type)) .setPayload(PAYLOAD_MSGPACK) .setRetries(3) .setErrorMessage("failed message")
.setWorker(wrapString(worker)) .setType(wrapString(type)) .setPayload(PAYLOAD_MSGPACK) .setRetries(3) .setErrorMessage("failed message")
.setWorker(wrapString(worker)) .setType(wrapString(type)) .setPayload(PAYLOAD_MSGPACK) .setRetries(retries) .setDeadline(deadline)
.setWorker(wrapString(worker)) .setType(wrapString(type)) .setPayload(PAYLOAD_MSGPACK) .setRetries(retries) .setDeadline(deadline)
w.writeString(BufferUtil.wrapString("yetAnotherValue")); }); jobRecord.setPayload(payload);