Author: degenaro Date: Tue Jul 31 14:09:24 2018 New Revision: 1837149 URL: http://svn.apache.org/viewvc?rev=1837149&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-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandler.java uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerUtils.java 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=1837149&r1=1837148&r2=1837149&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 Tue Jul 31 14:09:24 2018 @@ -1300,17 +1300,6 @@ 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 { @@ -1321,7 +1310,6 @@ public class DuccHandler extends DuccAbs DuccWorkJob job = getJob(jobNo); if(job != null) { try { - long refTime = getReferenceTime(job); String directory = job.getLogDirectory()+jobNo; EffectiveUser eu = EffectiveUser.create(request); long wiVersion = job.getWiVersion(); @@ -1382,6 +1370,7 @@ public class DuccHandler extends DuccAbs duccLogger.warn(methodName, job.getDuccId(), "work items display max:"+DuccConstants.workItemsDisplayMax); break; } + long refTime = DuccHandlerUtils.getReferenceTime(job,wis.getNode(),wis.getPid()); // SeqNo row.append("<td align=\"right\">"); row.append(wis.getSeqNo()); Modified: uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerUtils.java URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerUtils.java?rev=1837149&r1=1837148&r2=1837149&view=diff ============================================================================== --- uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerUtils.java (original) +++ uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerUtils.java Tue Jul 31 14:09:24 2018 @@ -19,9 +19,23 @@ package org.apache.uima.ducc.ws.server; import java.text.DecimalFormat; +import java.util.Map.Entry; + +import org.apache.uima.ducc.common.Node; +import org.apache.uima.ducc.common.NodeIdentity; +import org.apache.uima.ducc.common.utils.DuccLogger; +import org.apache.uima.ducc.common.utils.id.DuccId; +import org.apache.uima.ducc.transport.event.common.IDuccProcess; +import org.apache.uima.ducc.transport.event.common.IDuccProcessMap; +import org.apache.uima.ducc.transport.event.common.IDuccStandardInfo; +import org.apache.uima.ducc.transport.event.common.IDuccWorkJob; +import org.apache.uima.ducc.transport.event.common.ITimeWindow; public class DuccHandlerUtils { + private static DuccLogger duccLogger = DuccLogger.getLogger(DuccHandlerUtils.class); + private static DuccId jobid = null; + public static String warn(String text) { StringBuffer sb = new StringBuffer(); sb.append("<span class=\"health_red\""+">"); @@ -103,8 +117,78 @@ public class DuccHandlerUtils { return retVal; } - - - + public static boolean safeCompare(String s1, String s2) { + boolean retVal = false; + if (s1 != null) { + if (s2 != null) { + retVal = s1.equals(s2); + } + } + return retVal; + } + + public static String getNode(IDuccProcess p) { + String retVal = null; + Node node = p.getNode(); + NodeIdentity ni = node.getNodeIdentity(); + String name = ni.getIp(); + retVal = name; + return retVal; + } + + public static String getPid(IDuccProcess p) { + String retVal = p.getPID(); + return retVal; + } + + public static IDuccProcess getJobProcess(IDuccWorkJob job, String node, String pid) { + String location = "getJobProcess"; + IDuccProcess retVal = null; + try { + IDuccProcessMap map = job.getProcessMap(); + for (Entry<DuccId, IDuccProcess> entry : map.entrySet()) { + IDuccProcess p = entry.getValue(); + String pnode = getNode(p); + String ppid = getPid(p); + duccLogger.debug(location, jobid, node, pid, pnode, ppid); + if (safeCompare(node, pnode)) { + if (safeCompare(pid, ppid)) { + retVal = p; + break; + } + } + } + } catch (Exception e) { + // no worries + } + return retVal; + } + + public static long getReferenceTime(IDuccWorkJob job, String node, String pid) { + String location = "getReferenceTime"; + long retVal = System.currentTimeMillis(); + if (job != null) { + if (job.isCompleted()) { + IDuccStandardInfo stdInfo = job.getStandardInfo(); + long time = stdInfo.getDateOfCompletionMillis(); + if(time > 0) { + duccLogger.debug(location, jobid, "job: "+time); + retVal = time; + } + } + IDuccProcess p = getJobProcess(job, node, pid); + if (p != null) { + ITimeWindow tw = p.getTimeWindowRun(); + if (tw != null) { + long time = tw.getEndLong(); + if (time > 0) { + duccLogger.debug(location, jobid, "process: "+time); + retVal = time; + } + } + } + } + return retVal; + } }