Add delay for reading new jobs
authorSasha Sherstnev <a.sherstnev@dundee.ac.uk>
Tue, 21 Jan 2014 09:39:44 +0000 (09:39 +0000)
committerSasha Sherstnev <a.sherstnev@dundee.ac.uk>
Tue, 21 Jan 2014 09:39:44 +0000 (09:39 +0000)
datadb/compbio/cassandra/JpredParserHTTP.java

index 825689e..b84ddfd 100644 (file)
@@ -9,6 +9,8 @@ import java.net.HttpURLConnection;
 import java.net.MalformedURLException;
 import java.net.URL;
 import java.net.URLConnection;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Calendar;
 import java.util.Date;
@@ -35,6 +37,7 @@ public class JpredParserHTTP implements JpredParser {
        private int countNoData;
        private static boolean archiving = false;
        private static final PropertyHelper ph = ProteoCachePropertyHelperManager.getPropertyHelper();
+       static SimpleDateFormat timeformatter = new SimpleDateFormat("yyyy/MM/dd:H:m:s");
 
        public JpredParserHTTP() {
                dirprefix = "http://www.compbio.dundee.ac.uk/www-jpred/results";
@@ -136,6 +139,14 @@ public class JpredParserHTTP implements JpredParser {
                String maindir = dirprefix + "/" + job.getJobID() + "/";
 
                try {
+                       Date finishTime = timeformatter.parse(jobinfo[1]);
+                       long delay = currDate.getTime() / 1000 - finishTime.getTime() / 1000;
+                       if (delay < 120) return 0;
+               } catch (ParseException e) {
+                       e.printStackTrace();
+               }
+
+               try {
                        URL dirurl = new URL(maindir);
                        HttpURLConnection httpConnection_dirurl = (HttpURLConnection) dirurl.openConnection();
                        if (httpConnection_dirurl.getResponseCode() < 199 || 300 <= httpConnection_dirurl.getResponseCode()) {
@@ -162,6 +173,7 @@ public class JpredParserHTTP implements JpredParser {
                                job.setLog(parseLogFile(logurl.openStream(), job));
                        } else {
                                // The job has not been started at all...
+                               System.out.println ("WARNING! Job " + job.getJobID() + " has status FAIL/STOPPED");
                                job.setExecutionStatus("FAIL");
                                job.setFinalStatus("STOPPED");
                                running = false;