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 2014/02/07 14:42:24 UTC
svn commit: r1565648 - in /uima/sandbox/uima-ducc/trunk:
uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/JobFactory.java
uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/DuccWorkPopDriver.java
Author: degenaro
Date: Fri Feb 7 13:42:23 2014
New Revision: 1565648
URL: http://svn.apache.org/r1565648
Log:
UIMA-3600 DUCC Job Driver (JD) does not properly handle work items for down node (RM Purged)
Modified:
uima/sandbox/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/JobFactory.java
uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/DuccWorkPopDriver.java
Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/JobFactory.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/JobFactory.java?rev=1565648&r1=1565647&r2=1565648&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/JobFactory.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/JobFactory.java Fri Feb 7 13:42:23 2014
@@ -257,6 +257,7 @@ public class JobFactory {
private void createDriver(CommonConfiguration common, JobRequestProperties jobRequestProperties, DuccWorkJob job) {
String methodName = "createDriver";
+ DuccPropertiesResolver duccPropertiesResolver = DuccPropertiesResolver.getInstance();
// java command
String javaCmd = jobRequestProperties.getProperty(JobSpecificationProperties.key_jvm);
// broker & queue
@@ -266,18 +267,36 @@ public class JobFactory {
String crxml = jobRequestProperties.getProperty(JobSpecificationProperties.key_driver_descriptor_CR);
String crcfg = jobRequestProperties.getProperty(JobSpecificationProperties.key_driver_descriptor_CR_overrides);
// getMeta
- String meta_time = DuccPropertiesResolver.getInstance().getFileProperty(DuccPropertiesResolver.default_process_get_meta_time_max);
+ String meta_time = duccPropertiesResolver.getFileProperty(DuccPropertiesResolver.default_process_get_meta_time_max);
// lost
- String lost_time = DuccPropertiesResolver.getInstance().getFileProperty(DuccPropertiesResolver.ducc_jd_queue_timeout_minutes);
+ String lost_time = duccPropertiesResolver.getFileProperty(DuccPropertiesResolver.ducc_jd_queue_timeout_minutes);
// process_per_item_time_max
String wi_time = jobRequestProperties.getProperty(JobRequestProperties.key_process_per_item_time_max);
if(wi_time == null) {
- wi_time = DuccPropertiesResolver.getInstance().getFileProperty(DuccPropertiesResolver.default_process_per_item_time_max);
+ wi_time = duccPropertiesResolver.getFileProperty(DuccPropertiesResolver.default_process_per_item_time_max);
}
// Exception handler
String processExceptionHandler = jobRequestProperties.getProperty(JobRequestProperties.key_driver_exception_handler);
+ // ProcessStatusMaxWaitMillis
+ long processStatusMaxWaitMillis = -1;
+ try {
+ String ducc_orchestrator_abbreviated_state_publish_rate = duccPropertiesResolver.getFileProperty(DuccPropertiesResolver.ducc_orchestrator_abbreviated_state_publish_rate);
+ String ducc_rm_state_publish_rate = duccPropertiesResolver.getFileProperty(DuccPropertiesResolver.ducc_rm_state_publish_rate);
+ String ducc_agent_node_metrics_publish_rate = duccPropertiesResolver.getFileProperty(DuccPropertiesResolver.ducc_agent_node_metrics_publish_rate);
+ String ducc_rm_node_stability = duccPropertiesResolver.getFileProperty(DuccPropertiesResolver.ducc_rm_node_stability);
+ long orMillisRate = Long.parseLong(ducc_orchestrator_abbreviated_state_publish_rate);
+ long rmMillisRate = Long.parseLong(ducc_rm_state_publish_rate);
+ long metricsMillisRate = Long.parseLong(ducc_agent_node_metrics_publish_rate);
+ long stabilityCount = Long.parseLong(ducc_rm_node_stability);
+ long fudgeMillis = 10 * 1000;
+ processStatusMaxWaitMillis = metricsMillisRate*stabilityCount+(orMillisRate+rmMillisRate+fudgeMillis);
+ logger.debug(methodName, job.getDuccId(), "driver:processStatusMaxWaitMillis="+processStatusMaxWaitMillis);
+ }
+ catch(Exception e) {
+ logger.error(methodName, job.getDuccId(), e);
+ }
// Command line
- DuccWorkPopDriver driver = new DuccWorkPopDriver(job.getjobBroker(), job.getjobQueue(), crxml, crcfg, meta_time, lost_time, wi_time, processExceptionHandler);
+ DuccWorkPopDriver driver = new DuccWorkPopDriver(job.getjobBroker(), job.getjobQueue(), crxml, crcfg, meta_time, lost_time, wi_time, processExceptionHandler, processStatusMaxWaitMillis);
JavaCommandLine driverCommandLine = new JavaCommandLine(javaCmd);
driverCommandLine.setClassName(IDuccCommand.main);
driverCommandLine.addOption(IDuccCommand.arg_ducc_deploy_configruation);
Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/DuccWorkPopDriver.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/DuccWorkPopDriver.java?rev=1565648&r1=1565647&r2=1565648&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/DuccWorkPopDriver.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/DuccWorkPopDriver.java Fri Feb 7 13:42:23 2014
@@ -33,18 +33,9 @@ public class DuccWorkPopDriver extends D
private String wiTimeout = null;
private String processExceptionHandler = null;
- public DuccWorkPopDriver(String serverUri, String endPoint, String cr, String crConfig, String metaTimeout, String lostTimeout, String wiTimeout, String processExceptionHandler) {
- this.serverUri = serverUri;
- this.endPoint = endPoint;
- this.cr = cr;
- this.crConfig = crConfig;
- this.metaTimeout = metaTimeout;
- this.lostTimeout = lostTimeout;
- this.wiTimeout = wiTimeout;
- this.processExceptionHandler = processExceptionHandler;
- }
+ private long processStatusMaxWaitMillis = (5*60*1000)+(1*1000);
- public DuccWorkPopDriver(String serverUri, String endPoint, String cr, String crConfig, String metaTimeout, String lostTimeout, String wiTimeout) {
+ public DuccWorkPopDriver(String serverUri, String endPoint, String cr, String crConfig, String metaTimeout, String lostTimeout, String wiTimeout, String processExceptionHandler, long processStatusMaxWaitMillis) {
this.serverUri = serverUri;
this.endPoint = endPoint;
this.cr = cr;
@@ -52,6 +43,10 @@ public class DuccWorkPopDriver extends D
this.metaTimeout = metaTimeout;
this.lostTimeout = lostTimeout;
this.wiTimeout = wiTimeout;
+ this.processExceptionHandler = processExceptionHandler;
+ if(processStatusMaxWaitMillis >= 0) {
+ this.processStatusMaxWaitMillis = processStatusMaxWaitMillis;
+ }
}
public String getServerUri() {
@@ -85,4 +80,8 @@ public class DuccWorkPopDriver extends D
public String getProcessExceptionHandler() {
return processExceptionHandler;
}
+
+ public long getProcessStatusMaxWaitMillis() {
+ return processStatusMaxWaitMillis;
+ }
}