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);