Author: degenaro Date: Mon Jul 30 18:38:47 2018 New Revision: 1837079 URL: http://svn.apache.org/viewvc?rev=1837079&view=rev Log: UIMA-5851 DUCC Web Server (WS) displays ever increasing Processing Time on Work Items tab
Modified: uima/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/jd/files/IWorkItemState.java uima/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/jd/files/WorkItemState.java uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandler.java Modified: uima/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/jd/files/IWorkItemState.java URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/jd/files/IWorkItemState.java?rev=1837079&r1=1837078&r2=1837079&view=diff ============================================================================== --- uima/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/jd/files/IWorkItemState.java (original) +++ uima/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/jd/files/IWorkItemState.java Mon Jul 30 18:38:47 2018 @@ -58,11 +58,9 @@ public interface IWorkItemState extends public void investmentReset(); public long getMillisAtStart(); - public long getMillisOverhead(); public long getMillisProcessing(); - public long getMillisInvestment(); - public long getMillisOverhead(long now); - public long getMillisProcessing(long now); - public long getMillisInvestment(long now); + public long getMillisOverhead(long refTime); + public long getMillisProcessing(long refTime); + public long getMillisInvestment(long refTime); } Modified: uima/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/jd/files/WorkItemState.java URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/jd/files/WorkItemState.java?rev=1837079&r1=1837078&r2=1837079&view=diff ============================================================================== --- uima/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/jd/files/WorkItemState.java (original) +++ uima/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/jd/files/WorkItemState.java Mon Jul 30 18:38:47 2018 @@ -180,11 +180,7 @@ public class WorkItemState implements IW return millisAtStart; } - public long getMillisOverhead() { - return getMillisOverhead(System.currentTimeMillis()); - } - - public long getMillisOverhead(long now) { + public long getMillisOverhead(long refTime) { long retVal = 0; if(millisAtStart > 0) { if(millisAtQueued > 0) { @@ -194,7 +190,9 @@ public class WorkItemState implements IW retVal = millisAtOperating - millisAtStart; } else { - retVal = now - millisAtStart; + if(refTime > millisAtStart) { + retVal = refTime - millisAtStart; + } } } return retVal; @@ -204,31 +202,31 @@ public class WorkItemState implements IW return getMillisProcessing(System.currentTimeMillis()); } - public long getMillisProcessing(long now) { + public long getMillisProcessing(long refTime) { long retVal = 0; if(millisAtOperating > 0) { if(millisAtFinish > 0) { retVal = millisAtFinish - millisAtOperating; } else { - retVal = now - millisAtOperating; + if(refTime > millisAtOperating) { + retVal = refTime - millisAtOperating; + } } } return retVal; } - public long getMillisInvestment() { - return getMillisInvestment(System.currentTimeMillis()); - } - - public long getMillisInvestment(long now) { + public long getMillisInvestment(long refTime) { long retVal = 0; if(millisAtFinish < 0) { if(millisAtInvestment > 0) { - retVal = now - millisAtInvestment; + if(refTime > millisAtInvestment) { + retVal = refTime - millisAtInvestment; + } } else { - retVal = getMillisProcessing(); + retVal = getMillisProcessing(refTime); } } return retVal; Modified: uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandler.java URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandler.java?rev=1837079&r1=1837078&r2=1837079&view=diff ============================================================================== --- uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandler.java (original) +++ uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandler.java Mon Jul 30 18:38:47 2018 @@ -1299,6 +1299,18 @@ public class DuccHandler extends DuccAbs } return adjustedTime; } + + private long getReferenceTime(IDuccWorkJob job) { + long time = System.currentTimeMillis(); + if(job != null) { + if(job.isCompleted()) { + IDuccStandardInfo stdInfo = job.getStandardInfo(); + time = stdInfo.getDateOfCompletionMillis(); + } + } + return time; + } + private void handleDuccServletJobWorkitemsData(String target,Request baseRequest,HttpServletRequest request,HttpServletResponse response) throws IOException, ServletException { @@ -1309,7 +1321,7 @@ public class DuccHandler extends DuccAbs DuccWorkJob job = getJob(jobNo); if(job != null) { try { - long now = System.currentTimeMillis(); + long refTime = getReferenceTime(job); String directory = job.getLogDirectory()+jobNo; EffectiveUser eu = EffectiveUser.create(request); long wiVersion = job.getWiVersion(); @@ -1410,12 +1422,12 @@ public class DuccHandler extends DuccAbs row.append("<td align=\"right\">"); row.append(fmt_startTime); // Queuing Time (sec) - time = getAdjustedTime(wis.getMillisOverhead(), job); + time = getAdjustedTime(wis.getMillisOverhead(refTime), job); time = time/1000; row.append("<td align=\"right\">"); row.append(formatter.format(time)); // Processing Time (sec) - time = getAdjustedTime(wis.getMillisProcessing(now), job); + time = getAdjustedTime(wis.getMillisProcessing(refTime), job); time = time/1000; ptime = formatter.format(time); row.append("<td align=\"right\">"); @@ -1432,7 +1444,7 @@ public class DuccHandler extends DuccAbs row.append(ptime); row.append("</span>"); // Investment Time (sec) - time = getAdjustedTime(wis.getMillisInvestment(now), job); + time = getAdjustedTime(wis.getMillisInvestment(refTime), job); time = time/1000; itime = formatter.format(time); row.append("<td align=\"right\">");