package org.zstack.core.workflow; import java.util.concurrent.TimeUnit; /** */ public class WorkFlowStatistic { private volatile long totalTime; private volatile long count; private volatile long averageTime; private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } public long getTotalTime() { return totalTime; } public void setTotalTime(long totalTime) { this.totalTime = totalTime; } public long getCount() { return count; } public void setCount(long count) { this.count = count; } public long getAverageTime() { return averageTime; } public void setAverageTime(long averageTime) { this.averageTime = averageTime; } public void addStatistic(long time) { totalTime += time; count ++; averageTime = totalTime / count; } @Override public String toString() { return String.format("Flow[%s]: total time: %s secs, total count: %s, average time: %s secs", name, TimeUnit.MILLISECONDS.toSeconds(totalTime), count, TimeUnit.MILLISECONDS.toSeconds(averageTime)); } }