本文整理了Java中com.netflix.conductor.common.metadata.tasks.Task.getOutputData()
方法的一些代码示例,展示了Task.getOutputData()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Task.getOutputData()
方法的具体详情如下:
包路径:com.netflix.conductor.common.metadata.tasks.Task
类名称:Task
方法名:getOutputData
暂无
代码示例来源:origin: Netflix/conductor
@Override
public void cancel(Workflow workflow, Task task, WorkflowExecutor provider) {
String workflowId = (String) task.getOutputData().get(SUB_WORKFLOW_ID);
if(workflowId == null) {
workflowId = (String) task.getInputData().get(SUB_WORKFLOW_ID); //Backward compatibility
}
if(StringUtils.isEmpty(workflowId)) {
return;
}
Workflow subWorkflow = provider.getWorkflow(workflowId, false);
subWorkflow.setStatus(WorkflowStatus.TERMINATED);
provider.terminateWorkflow(subWorkflow, "Parent workflow has been terminated with status " + workflow.getStatus(), null);
}
代码示例来源:origin: Netflix/conductor
@Override
public void start(Workflow workflow, Task task, WorkflowExecutor executor) {
Map<String, Object> taskInput = task.getInputData();
Map<String, Object> taskOutput = task.getOutputData();
代码示例来源:origin: Netflix/conductor
@SuppressWarnings("unchecked")
@Override
public void start(Workflow workflow, Task task, WorkflowExecutor provider) {
Map<String, Object> input = task.getInputData();
String name = input.get("subWorkflowName").toString();
int version = (int) input.get("subWorkflowVersion");
Map<String, Object> wfInput = (Map<String, Object>) input.get("workflowInput");
if (wfInput == null || wfInput.isEmpty()) {
wfInput = input;
}
String correlationId = workflow.getCorrelationId();
try {
String subWorkflowId = provider.startWorkflow(name, version, wfInput, null, correlationId, workflow.getWorkflowId(), task.getTaskId(), null, workflow.getTaskToDomain());
task.getOutputData().put(SUB_WORKFLOW_ID, subWorkflowId);
task.getInputData().put(SUB_WORKFLOW_ID, subWorkflowId);
task.setStatus(Status.IN_PROGRESS);
} catch (Exception e) {
task.setStatus(Status.FAILED);
task.setReasonForIncompletion(e.getMessage());
logger.error(e.getMessage(), e);
}
}
代码示例来源:origin: Netflix/conductor
@Override
public boolean execute(Workflow workflow, Task task, WorkflowExecutor provider) {
String workflowId = (String) task.getOutputData().get(SUB_WORKFLOW_ID);
if (workflowId == null) {
workflowId = (String) task.getInputData().get(SUB_WORKFLOW_ID); //Backward compatibility
}
if(StringUtils.isEmpty(workflowId)) {
return false;
}
Workflow subWorkflow = provider.getWorkflow(workflowId, false);
WorkflowStatus subWorkflowStatus = subWorkflow.getStatus();
if(!subWorkflowStatus.isTerminal()){
return false;
}
task.getOutputData().putAll(subWorkflow.getOutput());
if (subWorkflowStatus.isSuccessful()) {
task.setStatus(Status.COMPLETED);
} else {
task.setReasonForIncompletion(subWorkflow.getReasonForIncompletion());
task.setStatus(Status.FAILED);
}
return true;
}
代码示例来源:origin: Netflix/conductor
if (task.getOutputData() != null) {
this.output = task.getOutputData().toString();
代码示例来源:origin: Netflix/conductor
@Override
public void start(Workflow workflow, Task task, WorkflowExecutor provider) {
Map<String, Object> payload = new HashMap<>(task.getInputData());
payload.put("workflowInstanceId", workflow.getWorkflowId());
payload.put("workflowType", workflow.getWorkflowName());
payload.put("workflowVersion", workflow.getWorkflowVersion());
payload.put("correlationId", workflow.getCorrelationId());
String payloadJson;
try {
payloadJson = objectMapper.writeValueAsString(payload);
} catch (JsonProcessingException e) {
String msg = String.format("Error serializing JSON payload for task: %s, workflow: %s", task.getTaskId(), workflow.getWorkflowId());
throw new ApplicationException(INTERNAL_ERROR, msg);
}
Message message = new Message(task.getTaskId(), payloadJson, task.getTaskId());
ObservableQueue queue = getQueue(workflow, task);
if(queue != null) {
queue.publish(Collections.singletonList(message));
task.getOutputData().putAll(payload);
task.setStatus(Status.COMPLETED);
} else {
task.setReasonForIncompletion("No queue found to publish.");
task.setStatus(Status.FAILED);
}
}
代码示例来源:origin: Netflix/conductor
/**
* Updates the workflow output.
*
* @param workflow the workflow instance
* @param task if not null, the output of this task will be copied to workflow output if no output parameters are specified in the workflow defintion
* if null, the output of the last task in the workflow will be copied to workflow output of no output parameters are specified in the workflow definition
*/
void updateWorkflowOutput(final Workflow workflow, @Nullable Task task) {
List<Task> allTasks = workflow.getTasks();
if (allTasks.isEmpty()) {
return;
}
Task last = Optional.ofNullable(task).orElse(allTasks.get(allTasks.size() - 1));
WorkflowDef workflowDef = workflow.getWorkflowDefinition();
Map<String, Object> output;
if (workflowDef.getOutputParameters() != null && !workflowDef.getOutputParameters().isEmpty()) {
Workflow workflowInstance = populateWorkflowAndTaskData(workflow);
output = parametersUtils.getTaskInput(workflowDef.getOutputParameters(), workflowInstance, null, null);
} else if (StringUtils.isNotBlank(last.getExternalOutputPayloadStoragePath())) {
output = externalPayloadStorageUtils.downloadPayload(last.getExternalOutputPayloadStoragePath());
Monitors.recordExternalPayloadStorageUsage(last.getTaskDefName(), ExternalPayloadStorage.Operation.READ.toString(), ExternalPayloadStorage.PayloadType.TASK_OUTPUT.toString());
} else {
output = last.getOutputData();
}
workflow.setOutput(output);
externalPayloadStorageUtils.verifyAndUpload(workflow, ExternalPayloadStorage.PayloadType.WORKFLOW_OUTPUT);
}
代码示例来源:origin: Netflix/conductor
task.getOutputData().put("location", "http://location");
task.setStatus(Task.Status.COMPLETED);
task2.getOutputData().put("refId", "abcddef_1234_7890_aaffcc");
task2.setStatus(Task.Status.SCHEDULED);
代码示例来源:origin: Netflix/conductor
@Test
public void testGetTaskInputV1() {
Map<String, Object> ip = new HashMap<>();
ip.put("workflowInputParam", "workflow.input.requestId");
ip.put("taskOutputParam", "task2.output.location");
WorkflowDef def = new WorkflowDef();
def.setSchemaVersion(1);
Workflow workflow = new Workflow();
workflow.setWorkflowDefinition(def);
workflow.getInput().put("requestId", "request id 001");
Task task = new Task();
task.setReferenceTaskName("task2");
task.getOutputData().put("location", "http://location");
task.getOutputData().put("isPersonActive", true);
workflow.getTasks().add(task);
Map<String, Object> taskInput = parametersUtils.getTaskInput(ip, workflow, null, null);
assertNotNull(taskInput);
assertTrue(taskInput.containsKey("workflowInputParam"));
assertTrue(taskInput.containsKey("taskOutputParam"));
assertEquals("request id 001", taskInput.get("workflowInputParam"));
assertEquals("http://location", taskInput.get("taskOutputParam"));
}
代码示例来源:origin: Netflix/conductor
public TaskResult(Task task) {
this.workflowInstanceId = task.getWorkflowInstanceId();
this.taskId = task.getTaskId();
this.reasonForIncompletion = task.getReasonForIncompletion();
this.callbackAfterSeconds = task.getCallbackAfterSeconds();
this.status = Status.valueOf(task.getStatus().name());
this.workerId = task.getWorkerId();
this.outputData = task.getOutputData();
this.externalOutputPayloadStoragePath = task.getExternalOutputPayloadStoragePath();
}
代码示例来源:origin: Netflix/conductor
@Test
public void testOAuth() {
Task task = new Task();
Input input = new Input();
input.setUri("http://localhost:7009/oauth");
input.setMethod("POST");
input.setOauthConsumerKey("someKey");
input.setOauthConsumerSecret("someSecret");
task.getInputData().put(HttpTask.REQUEST_PARAMETER_NAME, input);
httpTask.start(workflow, task, workflowExecutor);
Map<String, Object> response = (Map<String, Object>) task.getOutputData().get("response");
Map<String, String> body = (Map<String, String>) response.get("body");
assertEquals("someKey", body.get("oauth_consumer_key"));
assertTrue("Should have OAuth nonce", body.containsKey("oauth_nonce"));
assertTrue("Should have OAuth signature", body.containsKey("oauth_signature"));
assertTrue("Should have OAuth signature method", body.containsKey("oauth_signature_method"));
assertTrue("Should have OAuth oauth_timestamp", body.containsKey("oauth_timestamp"));
assertTrue("Should have OAuth oauth_version", body.containsKey("oauth_version"));
assertEquals("Task output: " + task.getOutputData(), Status.COMPLETED, task.getStatus());
}
代码示例来源:origin: Netflix/conductor
@Test
public void testPost() {
Task task = new Task();
Input input = new Input();
input.setUri("http://localhost:7009/post");
Map<String, Object> body = new HashMap<>();
body.put("input_key1", "value1");
body.put("input_key2", 45.3d);
input.setBody(body);
input.setMethod("POST");
task.getInputData().put(HttpTask.REQUEST_PARAMETER_NAME, input);
httpTask.start(workflow, task, workflowExecutor);
assertEquals(task.getReasonForIncompletion(), Task.Status.COMPLETED, task.getStatus());
Map<String, Object> hr = (Map<String, Object>) task.getOutputData().get("response");
Object response = hr.get("body");
assertEquals(Task.Status.COMPLETED, task.getStatus());
assertTrue("response is: " + response, response instanceof Map);
Map<String, Object> map = (Map<String, Object>) response;
Set<String> inputKeys = body.keySet();
Set<String> responseKeys = map.keySet();
inputKeys.containsAll(responseKeys);
responseKeys.containsAll(inputKeys);
}
代码示例来源:origin: Netflix/conductor
@Test
public void testTextGET() {
Task task = new Task();
Input input = new Input();
input.setUri("http://localhost:7009/text");
input.setMethod("GET");
task.getInputData().put(HttpTask.REQUEST_PARAMETER_NAME, input);
httpTask.start(workflow, task, workflowExecutor);
Map<String, Object> hr = (Map<String, Object>) task.getOutputData().get("response");
Object response = hr.get("body");
assertEquals(Task.Status.COMPLETED, task.getStatus());
assertEquals(TEXT_RESPONSE, response);
}
代码示例来源:origin: Netflix/conductor
@Test
public void testFailTaskWithOutputPayload() {
Task task = new Task();
task.setOutputData(new HashMap<>());
expectedException.expect(TerminateWorkflowException.class);
externalPayloadStorageUtils.failTask(task, ExternalPayloadStorage.PayloadType.TASK_OUTPUT, "error");
assertNotNull(task);
assertNull(task.getOutputData());
}
}
代码示例来源:origin: Netflix/conductor
@Test
public void testJsonGET() throws JsonProcessingException {
Task task = new Task();
Input input = new Input();
input.setUri("http://localhost:7009/json");
input.setMethod("GET");
task.getInputData().put(HttpTask.REQUEST_PARAMETER_NAME, input);
httpTask.start(workflow, task, workflowExecutor);
Map<String, Object> hr = (Map<String, Object>) task.getOutputData().get("response");
Object response = hr.get("body");
assertEquals(Task.Status.COMPLETED, task.getStatus());
assertTrue(response instanceof Map);
Map<String, Object> map = (Map<String, Object>) response;
assertEquals(JSON_RESPONSE, objectMapper.writeValueAsString(map));
}
代码示例来源:origin: Netflix/conductor
@Test
public void testNumberGET() {
Task task = new Task();
Input input = new Input();
input.setUri("http://localhost:7009/numeric");
input.setMethod("GET");
task.getInputData().put(HttpTask.REQUEST_PARAMETER_NAME, input);
httpTask.start(workflow, task, workflowExecutor);
Map<String, Object> hr = (Map<String, Object>) task.getOutputData().get("response");
Object response = hr.get("body");
assertEquals(Task.Status.COMPLETED, task.getStatus());
assertEquals(NUM_RESPONSE, response);
assertTrue(response instanceof Number);
}
代码示例来源:origin: Netflix/conductor
@Test
public void testPostNoContent() {
Task task = new Task();
Input input = new Input();
input.setUri("http://localhost:7009/post2");
Map<String, Object> body = new HashMap<>();
body.put("input_key1", "value1");
body.put("input_key2", 45.3d);
input.setBody(body);
input.setMethod("POST");
task.getInputData().put(HttpTask.REQUEST_PARAMETER_NAME, input);
httpTask.start(workflow, task, workflowExecutor);
assertEquals(task.getReasonForIncompletion(), Task.Status.COMPLETED, task.getStatus());
Map<String, Object> hr = (Map<String, Object>) task.getOutputData().get("response");
Object response = hr.get("body");
assertEquals(Task.Status.COMPLETED, task.getStatus());
assertNull("response is: " + response, response);
}
代码示例来源:origin: Netflix/conductor
@Override
public int hashCode() {
return Objects.hash(getTaskType(), getStatus(), getInputData(), getReferenceTaskName(), getRetryCount(), getSeq(), getCorrelationId(), getPollCount(), getTaskDefName(), getScheduledTime(), getStartTime(), getEndTime(), getUpdateTime(), getStartDelayInSeconds(), getRetriedTaskId(), isRetried(), isExecuted(), isCallbackFromWorker(), getResponseTimeoutSeconds(), getWorkflowInstanceId(), getWorkflowType(), getTaskId(), getReasonForIncompletion(), getCallbackAfterSeconds(), getWorkerId(), getOutputData(), getWorkflowTask(), getDomain(), getInputMessage(), getOutputMessage(), getRateLimitPerFrequency(), getRateLimitFrequencyInSeconds(), getExternalInputPayloadStoragePath(), getExternalOutputPayloadStoragePath());
}
}
代码示例来源:origin: Netflix/conductor
@Test
public void testFailure() {
Task task = new Task();
Input input = new Input();
input.setUri("http://localhost:7009/failure");
input.setMethod("GET");
task.getInputData().put(HttpTask.REQUEST_PARAMETER_NAME, input);
httpTask.start(workflow, task, workflowExecutor);
assertEquals("Task output: " + task.getOutputData(), Task.Status.FAILED, task.getStatus());
assertEquals(ERROR_RESPONSE, task.getReasonForIncompletion());
task.setStatus(Status.SCHEDULED);
task.getInputData().remove(HttpTask.REQUEST_PARAMETER_NAME);
httpTask.start(workflow, task, workflowExecutor);
assertEquals(Task.Status.FAILED, task.getStatus());
assertEquals(HttpTask.MISSING_REQUEST, task.getReasonForIncompletion());
}
代码示例来源:origin: Netflix/conductor
assertEquals("testWorkflow:some_arbitary_queue", queue.getURI());
assertEquals("conductor", queue.getType());
assertEquals("conductor:testWorkflow:some_arbitary_queue", task.getOutputData().get("event_produced"));
内容来源于网络,如有侵权,请联系作者删除!