本文整理了Java中com.netflix.conductor.common.metadata.tasks.Task.getStatus()
方法的一些代码示例,展示了Task.getStatus()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Task.getStatus()
方法的具体详情如下:
包路径:com.netflix.conductor.common.metadata.tasks.Task
类名称:Task
方法名:getStatus
暂无
代码示例来源:origin: Netflix/conductor
@Override
public List<Task> getPendingTasksByWorkflow(String taskName, String workflowId) {
List<Task> tasks = getTasksForWorkflow(workflowId);
return tasks.stream()
.filter(task -> taskName.equals(task.getTaskType()))
.filter(task -> Task.Status.IN_PROGRESS.equals(task.getStatus()))
.collect(Collectors.toList());
}
代码示例来源:origin: Netflix/conductor
/**
* Get all failed and cancelled tasks.
* for failed tasks - get one for each task reference name(latest failed using seq id)
*
* @param workflow
* @return list of latest failed tasks, one for each task reference reference type.
*/
@VisibleForTesting
List<Task> getFailedTasksToRetry(Workflow workflow) {
return workflow.getTasks().stream()
.filter(x -> FAILED.equals(x.getStatus()))
.collect(groupingBy(Task::getReferenceTaskName, maxBy(comparingInt(Task::getSeq))))
.values().stream()
.filter(Optional::isPresent)
.map(Optional::get)
.collect(Collectors.toList());
}
代码示例来源:origin: Netflix/conductor
private void updateTask(Connection connection, Task task) {
task.setUpdateTime(System.currentTimeMillis());
if (task.getStatus() != null && task.getStatus().isTerminal() && task.getEndTime() == 0) {
task.setEndTime(System.currentTimeMillis());
}
Optional<TaskDef> taskDefinition = task.getTaskDefinition();
if (taskDefinition.isPresent() && taskDefinition.get().concurrencyLimit() > 0) {
boolean inProgress = task.getStatus() != null && task.getStatus().equals(Task.Status.IN_PROGRESS);
updateInProgressStatus(connection, task, inProgress);
}
insertOrUpdateTaskData(connection, task);
if (task.getStatus() != null && task.getStatus().isTerminal()) {
removeTaskInProgress(connection, task);
}
addWorkflowToTaskMapping(connection, task);
}
代码示例来源:origin: Netflix/conductor
public DeciderOutcome decide(Workflow workflow) throws TerminateWorkflowException {
//In case of a new workflow the list of tasks will be empty
final List<Task> tasks = workflow.getTasks();
//In case of a new workflow the list of executedTasks will also be empty
List<Task> executedTasks = tasks.stream()
.filter(t -> !t.getStatus().equals(SKIPPED) && !t.getStatus().equals(READY_FOR_RERUN) && !t.isExecuted())
.collect(Collectors.toList());
List<Task> tasksToBeScheduled = new LinkedList<>();
if (executedTasks.isEmpty()) {
//this is the flow that the new workflow will go through
tasksToBeScheduled = startWorkflow(workflow);
if (tasksToBeScheduled == null) {
tasksToBeScheduled = new LinkedList<>();
}
}
return decide(workflow, tasksToBeScheduled);
}
代码示例来源:origin: Netflix/conductor
private boolean isTaskSkipped(WorkflowTask taskToSchedule, Workflow workflow) {
try {
boolean isTaskSkipped = false;
if (taskToSchedule != null) {
Task t = workflow.getTaskByRefName(taskToSchedule.getTaskReferenceName());
if (t == null) {
isTaskSkipped = false;
} else if (t.getStatus().equals(SKIPPED)) {
isTaskSkipped = true;
}
}
return isTaskSkipped;
} catch (Exception e) {
throw new TerminateWorkflowException(e.getMessage());
}
}
代码示例来源:origin: Netflix/conductor
@Override
public void updateTask(Task task) {
try {
task.setUpdateTime(System.currentTimeMillis());
if (task.getStatus().isTerminal() && task.getEndTime() == 0) {
task.setEndTime(System.currentTimeMillis());
}
// TODO: calculate the shard number the task belongs to
String taskPayload = toJson(task);
recordCassandraDaoRequests("updateTask", task.getTaskType(), task.getWorkflowType());
recordCassandraDaoPayloadSize("updateTask", taskPayload.length(), task.getTaskType(), task.getWorkflowType());
session.execute(insertTaskStatement.bind(UUID.fromString(task.getWorkflowInstanceId()), DEFAULT_SHARD_ID, task.getTaskId(), taskPayload));
} catch (Exception e) {
Monitors.error(CLASS_NAME, "updateTask");
String errorMsg = String.format("Error updating task: %s in workflow: %s", task.getTaskId(), task.getWorkflowInstanceId());
LOGGER.error(errorMsg, e);
throw new ApplicationException(ApplicationException.Code.BACKEND_ERROR, errorMsg, e);
}
}
代码示例来源:origin: Netflix/conductor
private void printTaskStatuses(Workflow wf, String message) {
if (printWFTaskDetails) {
System.out.println(message + " >>> Workflow status " + wf.getStatus().name());
wf.getTasks().forEach(t -> {
System.out.println("Task " + String.format("%-15s", t.getTaskType()) + "\t" + String.format("%-15s", t.getReferenceTaskName()) + "\t" + String.format("%-15s", t.getWorkflowTask().getType()) + "\t" + t.getSeq() + "\t" + t.getStatus() + "\t" + t.getTaskId());
});
System.out.println();
}
}
}
代码示例来源:origin: Netflix/conductor
public int requeuePendingTasks(String taskType) {
int count = 0;
List<Task> tasks = getPendingTasksForTaskType(taskType);
for (Task pending : tasks) {
if (SystemTaskType.is(pending.getTaskType())) {
continue;
}
if (pending.getStatus().isTerminal()) {
continue;
}
logger.info("Requeuing Task: workflowId=" + pending.getWorkflowInstanceId() + ", taskType=" + pending.getTaskType() + ", taskId=" + pending.getTaskId());
boolean pushed = requeue(pending);
if (pushed) {
count++;
}
}
return count;
}
代码示例来源: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 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
@Test
public void test() {
Task task = new Task();
task.setStatus(Status.FAILED);
assertEquals(Status.FAILED, task.getStatus());
Set<String> resultStatues = Arrays.asList(TaskResult.Status.values()).stream()
.map(status -> status.name())
.collect(Collectors.toSet());
for (Status status : Status.values()) {
if (resultStatues.contains(status.name())) {
TaskResult.Status trStatus = TaskResult.Status.valueOf(status.name());
assertEquals(status.name(), trStatus.name());
task = new Task();
task.setStatus(status);
assertEquals(status, task.getStatus());
}
}
}
代码示例来源:origin: Netflix/conductor
@Test
public void testCaseStatement() {
WorkflowDef def = createConditionalWF();
Workflow wf = new Workflow();
wf.setWorkflowDefinition(def);
wf.setCreateTime(0L);
wf.setWorkflowId("a");
wf.setCorrelationId("b");
wf.setStatus(WorkflowStatus.RUNNING);
DeciderOutcome outcome = deciderService.decide(wf);
List<Task> scheduledTasks = outcome.tasksToBeScheduled;
assertNotNull(scheduledTasks);
assertEquals(2, scheduledTasks.size());
assertEquals(Status.IN_PROGRESS, scheduledTasks.get(0).getStatus());
assertEquals(Status.SCHEDULED, scheduledTasks.get(1).getStatus());
}
代码示例来源: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 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 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
@Test
public void testTaskDefinitionIfAvailable() {
Task task = new Task();
task.setStatus(Status.FAILED);
assertEquals(Status.FAILED, task.getStatus());
assertNull(task.getWorkflowTask());
assertFalse(task.getTaskDefinition().isPresent());
WorkflowTask workflowTask = new WorkflowTask();
TaskDef taskDefinition = new TaskDef();
workflowTask.setTaskDefinition(taskDefinition);
task.setWorkflowTask(workflowTask);
assertTrue(task.getTaskDefinition().isPresent());
assertEquals(taskDefinition, task.getTaskDefinition().get());
}
}
代码示例来源:origin: Netflix/conductor
/**
* @param workflowId the id of the workflow for which callbacks are to be reset
* @throws ApplicationException if the workflow is in terminal state
*/
public void resetCallbacksForInProgressTasks(String workflowId) {
Workflow workflow = executionDAOFacade.getWorkflowById(workflowId, true);
if (workflow.getStatus().isTerminal()) {
throw new ApplicationException(CONFLICT, "Workflow is in terminal state. Status =" + workflow.getStatus());
}
// Get tasks that are in progress and have callbackAfterSeconds > 0
// and set the callbackAfterSeconds to 0;
for (Task task : workflow.getTasks()) {
if (task.getStatus().equals(IN_PROGRESS) &&
task.getCallbackAfterSeconds() > 0) {
if (queueDAO.setOffsetTime(QueueUtils.getQueueName(task), task.getTaskId(), 0)) {
task.setCallbackAfterSeconds(0);
executionDAOFacade.updateTask(task);
}
}
}
}
代码示例来源: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 testGetTaskByRef() {
Workflow workflow = new Workflow();
Task t1 = new Task();
t1.setReferenceTaskName("ref");
t1.setSeq(0);
t1.setStatus(Status.TIMED_OUT);
Task t2 = new Task();
t2.setReferenceTaskName("ref");
t2.setSeq(1);
t2.setStatus(Status.FAILED);
Task t3 = new Task();
t3.setReferenceTaskName("ref");
t3.setSeq(2);
t3.setStatus(Status.COMPLETED);
workflow.getTasks().add(t1);
workflow.getTasks().add(t2);
workflow.getTasks().add(t3);
Task task = workflow.getTaskByRefName("ref");
assertNotNull(task);
assertEquals(Status.COMPLETED, task.getStatus());
assertEquals(t3.getSeq(), task.getSeq());
}
内容来源于网络,如有侵权,请联系作者删除!