You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by sh...@apache.org on 2016/11/02 03:30:22 UTC

[11/20] airavata git commit: Updated aurora monitor task to sleep after a round of status check

Updated aurora monitor task to sleep after a round of status check


Project: http://git-wip-us.apache.org/repos/asf/airavata/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/c72417e3
Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/c72417e3
Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/c72417e3

Branch: refs/heads/auroraMesosIntegration
Commit: c72417e3d89daee51538bf78c041cb58bc889491
Parents: b3d4c7a
Author: Shameera Rathnayaka <sh...@gmail.com>
Authored: Tue Nov 1 20:47:08 2016 -0400
Committer: Shameera Rathnayaka <sh...@gmail.com>
Committed: Tue Nov 1 20:47:08 2016 -0400

----------------------------------------------------------------------
 .../gfac/monitor/cloud/AuroraJobMonitor.java    | 60 +++++++++++---------
 1 file changed, 34 insertions(+), 26 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/c72417e3/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/monitor/cloud/AuroraJobMonitor.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/monitor/cloud/AuroraJobMonitor.java b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/monitor/cloud/AuroraJobMonitor.java
index 477f1db..9e24597 100644
--- a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/monitor/cloud/AuroraJobMonitor.java
+++ b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/monitor/cloud/AuroraJobMonitor.java
@@ -66,7 +66,7 @@ public class AuroraJobMonitor implements JobMonitor, Runnable {
     private Map<String,TaskContext> jobMonitoringMap;
     private AuroraJobMonitor(){
         jobMonitoringMap = new ConcurrentHashMap<>();
-        timer = new Timer("Aurora status poll timer");
+        timer = new Timer("Aurora status poll timer", true);
 
     }
 
@@ -125,33 +125,41 @@ public class AuroraJobMonitor implements JobMonitor, Runnable {
         @Override
 
         public void run() {
-            JobKeyBean jobKeyBean = new JobKeyBean(AuroraUtils.ENVIRONMENT, AuroraUtils.ROLE, "dummy");
-            Iterator<Map.Entry<String, TaskContext>> iterator = jobMonitoringMap.entrySet().iterator();
-            while (iterator.hasNext()) {
-                Map.Entry<String, TaskContext> currentEntry = iterator.next();
-                try {
-                    jobKeyBean.setName(currentEntry.getKey());
-                    JobDetailsResponseBean jobDetailsResponseBean = client.getJobDetails(jobKeyBean);
-                    List<ScheduledTask> tasks = jobDetailsResponseBean.getTasks();
-                    switch (tasks.get(0).getStatus()) {
-                        case FINISHED:
-                            iterator.remove();
-                            processJob(currentEntry.getKey(), currentEntry.getValue(), JobState.COMPLETE);
-                            break;
-                        case FAILED:
-                            iterator.remove();
-                            processJob(currentEntry.getKey(), currentEntry.getValue(), JobState.FAILED);
-                            break;
-                        case RUNNING:
-                            updateStatus(currentEntry.getKey(), currentEntry.getValue(), JobState.ACTIVE);
-                            break;
-                        default:
-                            log.info("Job {} is in {} state", currentEntry.getKey(), tasks.get(0).getStatus().name());
-                            break;
+            while(true){
+                JobKeyBean jobKeyBean = new JobKeyBean(AuroraUtils.ENVIRONMENT, AuroraUtils.ROLE, "dummy");
+                Iterator<Map.Entry<String, TaskContext>> iterator = jobMonitoringMap.entrySet().iterator();
+                while (iterator.hasNext()) {
+                    Map.Entry<String, TaskContext> currentEntry = iterator.next();
+                    try {
+                        jobKeyBean.setName(currentEntry.getKey());
+                        JobDetailsResponseBean jobDetailsResponseBean = client.getJobDetails(jobKeyBean);
+                        List<ScheduledTask> tasks = jobDetailsResponseBean.getTasks();
+                        switch (tasks.get(0).getStatus()) {
+                            case FINISHED:
+                                iterator.remove();
+                                processJob(currentEntry.getKey(), currentEntry.getValue(), JobState.COMPLETE);
+                                break;
+                            case FAILED:
+                                iterator.remove();
+                                processJob(currentEntry.getKey(), currentEntry.getValue(), JobState.FAILED);
+                                break;
+                            case RUNNING:
+                                updateStatus(currentEntry.getKey(), currentEntry.getValue(), JobState.ACTIVE);
+                                break;
+                            default:
+                                log.info("Job {} is in {} state", currentEntry.getKey(), tasks.get(0).getStatus().name());
+                                break;
+                        }
+                    } catch (Exception e) {
+                        log.error("Error while getting response for job : {}", currentEntry.getKey());
+
                     }
-                } catch (Exception e) {
-                    log.error("Error while getting response for job : {}", currentEntry.getKey());
+                }
 
+                try {
+                    Thread.sleep(5000);
+                } catch (InterruptedException e) {
+                    log.warn("Aurora Monitoring task interrupted");
                 }
             }
         }