All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.netflix.conductor.common.run.TaskSummary Maven / Gradle / Ivy

/*
 * Copyright 2020 Netflix, Inc.
 * 

* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at *

* http://www.apache.org/licenses/LICENSE-2.0 *

* Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the * specific language governing permissions and limitations under the License. */ package com.netflix.conductor.common.run; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Objects; import java.util.TimeZone; import org.apache.commons.lang3.StringUtils; import com.netflix.conductor.annotations.protogen.ProtoField; import com.netflix.conductor.annotations.protogen.ProtoMessage; import com.netflix.conductor.common.metadata.tasks.Task; import com.netflix.conductor.common.metadata.tasks.Task.Status; import com.netflix.conductor.common.utils.SummaryUtil; @ProtoMessage public class TaskSummary { /** The time should be stored as GMT */ private static final TimeZone GMT = TimeZone.getTimeZone("GMT"); @ProtoField(id = 1) private String workflowId; @ProtoField(id = 2) private String workflowType; @ProtoField(id = 3) private String correlationId; @ProtoField(id = 4) private String scheduledTime; @ProtoField(id = 5) private String startTime; @ProtoField(id = 6) private String updateTime; @ProtoField(id = 7) private String endTime; @ProtoField(id = 8) private Task.Status status; @ProtoField(id = 9) private String reasonForIncompletion; @ProtoField(id = 10) private long executionTime; @ProtoField(id = 11) private long queueWaitTime; @ProtoField(id = 12) private String taskDefName; @ProtoField(id = 13) private String taskType; @ProtoField(id = 14) private String input; @ProtoField(id = 15) private String output; @ProtoField(id = 16) private String taskId; @ProtoField(id = 17) private String externalInputPayloadStoragePath; @ProtoField(id = 18) private String externalOutputPayloadStoragePath; @ProtoField(id = 19) private int workflowPriority; public TaskSummary() {} public TaskSummary(Task task) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"); sdf.setTimeZone(GMT); this.taskId = task.getTaskId(); this.taskDefName = task.getTaskDefName(); this.taskType = task.getTaskType(); this.workflowId = task.getWorkflowInstanceId(); this.workflowType = task.getWorkflowType(); this.workflowPriority = task.getWorkflowPriority(); this.correlationId = task.getCorrelationId(); this.scheduledTime = sdf.format(new Date(task.getScheduledTime())); this.startTime = sdf.format(new Date(task.getStartTime())); this.updateTime = sdf.format(new Date(task.getUpdateTime())); this.endTime = sdf.format(new Date(task.getEndTime())); this.status = task.getStatus(); this.reasonForIncompletion = task.getReasonForIncompletion(); this.queueWaitTime = task.getQueueWaitTime(); if (task.getInputData() != null) { this.input = SummaryUtil.serializeInputOutput(task.getInputData()); } if (task.getOutputData() != null) { this.output = SummaryUtil.serializeInputOutput(task.getOutputData()); } if (task.getEndTime() > 0) { this.executionTime = task.getEndTime() - task.getStartTime(); } if (StringUtils.isNotBlank(task.getExternalInputPayloadStoragePath())) { this.externalInputPayloadStoragePath = task.getExternalInputPayloadStoragePath(); } if (StringUtils.isNotBlank(task.getExternalOutputPayloadStoragePath())) { this.externalOutputPayloadStoragePath = task.getExternalOutputPayloadStoragePath(); } } /** * @return the workflowId */ public String getWorkflowId() { return workflowId; } /** * @param workflowId the workflowId to set */ public void setWorkflowId(String workflowId) { this.workflowId = workflowId; } /** * @return the workflowType */ public String getWorkflowType() { return workflowType; } /** * @param workflowType the workflowType to set */ public void setWorkflowType(String workflowType) { this.workflowType = workflowType; } /** * @return the correlationId */ public String getCorrelationId() { return correlationId; } /** * @param correlationId the correlationId to set */ public void setCorrelationId(String correlationId) { this.correlationId = correlationId; } /** * @return the scheduledTime */ public String getScheduledTime() { return scheduledTime; } /** * @param scheduledTime the scheduledTime to set */ public void setScheduledTime(String scheduledTime) { this.scheduledTime = scheduledTime; } /** * @return the startTime */ public String getStartTime() { return startTime; } /** * @param startTime the startTime to set */ public void setStartTime(String startTime) { this.startTime = startTime; } /** * @return the updateTime */ public String getUpdateTime() { return updateTime; } /** * @param updateTime the updateTime to set */ public void setUpdateTime(String updateTime) { this.updateTime = updateTime; } /** * @return the endTime */ public String getEndTime() { return endTime; } /** * @param endTime the endTime to set */ public void setEndTime(String endTime) { this.endTime = endTime; } /** * @return the status */ public Status getStatus() { return status; } /** * @param status the status to set */ public void setStatus(Status status) { this.status = status; } /** * @return the reasonForIncompletion */ public String getReasonForIncompletion() { return reasonForIncompletion; } /** * @param reasonForIncompletion the reasonForIncompletion to set */ public void setReasonForIncompletion(String reasonForIncompletion) { this.reasonForIncompletion = reasonForIncompletion; } /** * @return the executionTime */ public long getExecutionTime() { return executionTime; } /** * @param executionTime the executionTime to set */ public void setExecutionTime(long executionTime) { this.executionTime = executionTime; } /** * @return the queueWaitTime */ public long getQueueWaitTime() { return queueWaitTime; } /** * @param queueWaitTime the queueWaitTime to set */ public void setQueueWaitTime(long queueWaitTime) { this.queueWaitTime = queueWaitTime; } /** * @return the taskDefName */ public String getTaskDefName() { return taskDefName; } /** * @param taskDefName the taskDefName to set */ public void setTaskDefName(String taskDefName) { this.taskDefName = taskDefName; } /** * @return the taskType */ public String getTaskType() { return taskType; } /** * @param taskType the taskType to set */ public void setTaskType(String taskType) { this.taskType = taskType; } /** * @return input to the task */ public String getInput() { return input; } /** * @param input input to the task */ public void setInput(String input) { this.input = input; } /** * @return output of the task */ public String getOutput() { return output; } /** * @param output Task output */ public void setOutput(String output) { this.output = output; } /** * @return the taskId */ public String getTaskId() { return taskId; } /** * @param taskId the taskId to set */ public void setTaskId(String taskId) { this.taskId = taskId; } /** * @return the external storage path for the task input payload */ public String getExternalInputPayloadStoragePath() { return externalInputPayloadStoragePath; } /** * @param externalInputPayloadStoragePath the external storage path where the task input payload * is stored */ public void setExternalInputPayloadStoragePath(String externalInputPayloadStoragePath) { this.externalInputPayloadStoragePath = externalInputPayloadStoragePath; } /** * @return the external storage path for the task output payload */ public String getExternalOutputPayloadStoragePath() { return externalOutputPayloadStoragePath; } /** * @param externalOutputPayloadStoragePath the external storage path where the task output * payload is stored */ public void setExternalOutputPayloadStoragePath(String externalOutputPayloadStoragePath) { this.externalOutputPayloadStoragePath = externalOutputPayloadStoragePath; } /** * @return the priority defined on workflow */ public int getWorkflowPriority() { return workflowPriority; } /** * @param workflowPriority Priority defined for workflow */ public void setWorkflowPriority(int workflowPriority) { this.workflowPriority = workflowPriority; } @Override public boolean equals(Object o) { if (this == o) { return true; } if (o == null || getClass() != o.getClass()) { return false; } TaskSummary that = (TaskSummary) o; return getExecutionTime() == that.getExecutionTime() && getQueueWaitTime() == that.getQueueWaitTime() && getWorkflowPriority() == that.getWorkflowPriority() && getWorkflowId().equals(that.getWorkflowId()) && getWorkflowType().equals(that.getWorkflowType()) && Objects.equals(getCorrelationId(), that.getCorrelationId()) && getScheduledTime().equals(that.getScheduledTime()) && Objects.equals(getStartTime(), that.getStartTime()) && Objects.equals(getUpdateTime(), that.getUpdateTime()) && Objects.equals(getEndTime(), that.getEndTime()) && getStatus() == that.getStatus() && Objects.equals(getReasonForIncompletion(), that.getReasonForIncompletion()) && Objects.equals(getTaskDefName(), that.getTaskDefName()) && getTaskType().equals(that.getTaskType()) && getTaskId().equals(that.getTaskId()); } @Override public int hashCode() { return Objects.hash( getWorkflowId(), getWorkflowType(), getCorrelationId(), getScheduledTime(), getStartTime(), getUpdateTime(), getEndTime(), getStatus(), getReasonForIncompletion(), getExecutionTime(), getQueueWaitTime(), getTaskDefName(), getTaskType(), getTaskId(), getWorkflowPriority()); } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy