You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by de...@apache.org on 2018/12/11 14:30:10 UTC

svn commit: r1848688 - in /uima/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common: ADuccWork.java IDuccWork.java

Author: degenaro
Date: Tue Dec 11 14:30:10 2018
New Revision: 1848688

URL: http://svn.apache.org/viewvc?rev=1848688&view=rev
Log:
UIMA-5928 DUCC Agent quiesce should wait (forever) for non-fairshare displatchables to complete before shutting down

Provide method interface and implementation to determine preemptability status of dispatchable entities.

Modified:
    uima/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/ADuccWork.java
    uima/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/IDuccWork.java

Modified: uima/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/ADuccWork.java
URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/ADuccWork.java?rev=1848688&r1=1848687&r2=1848688&view=diff
==============================================================================
--- uima/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/ADuccWork.java (original)
+++ uima/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/ADuccWork.java Tue Dec 11 14:30:10 2018
@@ -18,6 +18,7 @@
 */
 package org.apache.uima.ducc.transport.event.common;
 
+import org.apache.uima.ducc.common.utils.DuccSchedulerClasses;
 import org.apache.uima.ducc.common.utils.id.DuccId;
 import org.apache.uima.ducc.transport.event.common.IDuccTypes.DuccType;
 import org.apache.uima.ducc.transport.event.common.IDuccWorkService.ServiceDeploymentType;
@@ -94,6 +95,29 @@ public abstract class ADuccWork implemen
 		this.duccSchedulingInfo = schedulingInfo;
 	}
 
+	// Evaluate preemptability of scheduling class for entity: { 1 == yes, -1 == no, 0 == dunno }
+	public int getPreemptableStatus() {
+		int retVal = 0;  // dunno
+		try {
+			if(duccSchedulingInfo != null) {
+				String class_name = duccSchedulingInfo.getSchedulingClass();
+				if(class_name != null) {
+					DuccSchedulerClasses duccSchedulerClasses = DuccSchedulerClasses.getInstance();
+					boolean preemptable = duccSchedulerClasses.isPreemptable(class_name);
+					if(preemptable) {
+						retVal = 0+1; // yes
+					}
+					else {
+						retVal = 0-1; // no
+					}
+				}
+			}
+		}
+		catch(Exception e) {
+			// dunno
+		}
+		return retVal;
+	}
 	
 	public Object getStateObject() {
 		return stateObject;

Modified: uima/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/IDuccWork.java
URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/IDuccWork.java?rev=1848688&r1=1848687&r2=1848688&view=diff
==============================================================================
--- uima/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/IDuccWork.java (original)
+++ uima/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/IDuccWork.java Tue Dec 11 14:30:10 2018
@@ -41,6 +41,9 @@ public interface IDuccWork extends Ident
 	public IDuccSchedulingInfo getSchedulingInfo();
 	public void setSchedulingInfo(IDuccSchedulingInfo schedulingInfo);
 	
+	// Evaluate preemptability of scheduling class for entity: { 1 == yes, -1 == no, 0 == dunno }
+	public int getPreemptableStatus();
+	
 	public Object getStateObject();
 	public void setStateObject(Object state);