X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=datadb%2Fcompbio%2Fcassandra%2FCassandraRemover.java;h=d7ebd878aeadbadd6d2991b2dcc574f6b47747ff;hb=1128ff389aa843f434814b4a67fbc3b683683d12;hp=840466359a0ba1e998d1f104ae1c7b3de20e04e9;hpb=4ec4e979c9020b6c5302659fb09a41fa35bf68fb;p=proteocache.git diff --git a/datadb/compbio/cassandra/CassandraRemover.java b/datadb/compbio/cassandra/CassandraRemover.java index 8404663..d7ebd87 100644 --- a/datadb/compbio/cassandra/CassandraRemover.java +++ b/datadb/compbio/cassandra/CassandraRemover.java @@ -30,54 +30,72 @@ public class CassandraRemover { /* * delete a record from CF for current jobId */ - private void RemoveJob(String jobid, long date) { + private void RemoveJob(String jobid, long date) { + String status = FindStatus(jobid); String com0 = "DELETE FROM ProteinLog WHERE JobID = '" + jobid + "';"; System.out.println("Command: " + com0); session.execute(com0); - String com1 = "DELETE FROM ProteinRow WHERE JobID = '" + jobid + "';"; - System.out.println("Command: " + com1); - session.execute(com1); - String com2 = "DELETE FROM ProteinData WHERE JobID = '" + jobid + "' AND jobtime = " + date + ";"; - System.out.println("Command: " + com2); - session.execute(com2); String com3 = "UPDATE jpredarchive SET finalstatus = 'DELETED' WHERE JobID = '" + jobid + "' ;"; System.out.println("Command: " + com3); session.execute(com3); - String com = "SELECT total FROM JobDateInfo WHERE jobday = " + date + ";"; + String com = "SELECT * FROM JobDateInfo WHERE jobday = " + date + ";"; System.out.println("Command: " + com); ResultSet results = session.execute(com); - long njobs = results.one().getLong("total"); - System.out.println("njobs: " + njobs); - String com4 = "INSERT INTO JobDateInfo " + "(jobday, Total)" + " VALUES (" + date + "," + (njobs -1) + ");"; + Row row = results.one(); + long njobs = row.getLong("Total") -1 ; + if (status.equals("OK")) { + long njobsOK = row.getLong("TotalOK") - 1; + String com1 = "DELETE FROM ProteinRow WHERE JobID = '" + jobid + "';"; + System.out.println("Command: " + com1); + session.execute(com1); + String com2 = "DELETE FROM ProteinData WHERE JobID = '" + jobid + "' AND jobtime = " + date + ";"; + System.out.println("Command: " + com2); + session.execute(com2); + UpdateJobDateInfo(date, "TotalOK", njobsOK, njobs); + } else { + String com6 = "DELETE FROM FailLog WHERE JobID = '" + jobid + "' AND jobtime = " + date + ";"; + System.out.println("Command: " + com6); + session.execute(com6); + if (status.equals("STOPPED")) { + long njobsStopped = row.getLong("TotalStopped") - 1; + UpdateJobDateInfo(date, "TotalStopped", njobsStopped, njobs); + } else if (status.equals("ERROR")) { + long njobsError = row.getLong("TotalError") - 1; + UpdateJobDateInfo(date, "TotalError", njobsError, njobs); + } else if (status.equals("TIMEDOUT")) { + long njobsTimeOut = row.getLong("TotalTimeOut") - 1; + UpdateJobDateInfo(date, "TotalTimeOut", njobsTimeOut, njobs); + } + } + System.out.println("Remove jobs: " + jobid); + } + + private void UpdateJobDateInfo(long date, String ColumnName, long totalcol, long total) { + String com4 = "UPDATE JobDateInfo SET " + ColumnName + " = " + totalcol + ", Total = " + total + " WHERE jobday = " + date + ";"; System.out.println("Command: " + com4); session.execute(com4); - System.out.println("Remove jobs: " + jobid); } - public void RemoveJobById (String jobid) { + public int RemoveJobById (String jobid) { if (jobid == null) - return; + return 0; Long date = FindDate(jobid); - if (date == null) - return; RemoveJob(jobid, date); + return 1; } - public void RemoveJobByDate (String date1, String date2) { - System.out.println("Start " + date1 + ", " + date2); + public int RemoveJobByDate (String date1, String date2) { + int numremover = 0; if (date1 == null || date2 == null) - return; + return 0; Long dateBegin = convertDate(date1); Long dateEnd = convertDate(date2); - System.out.println("Date to long done!: "); - if (dateBegin == null || dateEnd == null) - return; Calendar start = Calendar.getInstance(); start.setTime(new Date(dateBegin)); Calendar end = Calendar.getInstance(); end.setTime(new Date(dateEnd)); - System.out.println("Date to cal done!: "); for (Date date = start.getTime(); !start.after(end); start.add(Calendar.DATE, 1), date = start.getTime()) { + System.out.println("--------------------------------------------------------------------: "); String com = "SELECT JobID FROM ProteinData WHERE jobtime = " + date.getTime() + ";"; System.out.println("Command: " + com); ResultSet results = session.execute(com); @@ -85,19 +103,37 @@ public class CassandraRemover { List rows = results.all(); for (Row r : rows) { String jobid = r.getString("JobID"); - if (jobid != null) + if (jobid != null) { RemoveJob(jobid, date.getTime()); + numremover++; + } + } + } + String comm = "SELECT JobID FROM FailLog WHERE jobtime = " + date.getTime() + ";"; + System.out.println("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^: " + comm); + ResultSet resultsfail = session.execute(comm); + System.out.println("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^: " + comm); + if (!resultsfail.isExhausted()) { + List rows = resultsfail.all(); + for (Row r : rows) { + String jobid = r.getString("JobID"); + System.out.println("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^: " + jobid); + if (jobid != null) { + RemoveJob(jobid, date.getTime()); + numremover++; + } } } } + return numremover; } - public void RemoveJobByIp (String ip) { + public int RemoveJobByIp (String ip) { + int numremover = 0; if (ip == null) - return; + return 0; String com = "SELECT databegin, JobID FROM ProteinLog WHERE ip = '" + ip + "';"; - System.out.println("Command: " + com); ResultSet results = session.execute(com); if (!results.isExhausted()) { List rows = results.all(); @@ -107,40 +143,45 @@ public class CassandraRemover { if (date == null || jobid == null) continue; RemoveJob(jobid, date); + numremover++; } } + return numremover; } - public void RemoveJobBySequence (String seq) { + public int RemoveJobBySequence (String seq) { + int numremover = 0; if (seq == null) - return; + return 0; String com = "SELECT JobID FROM ProteinRow WHERE Protein = '" + seq + "';"; - System.out.println("Command: " + com); ResultSet results = session.execute(com); if (!results.isExhausted()) { List rows = results.all(); for (Row r : rows) { String jobid = r.getString("JobID"); - if (jobid == null) - continue; Long date = FindDate(jobid); - if (date == null) - continue; RemoveJob(jobid, date); + numremover++; } } + return numremover; } private Long FindDate(String jobid) { String com = "SELECT databegin FROM ProteinLog WHERE JobID = '" + jobid + "';"; - System.out.println("Command: " + com); ResultSet results = session.execute(com); - if (results.isExhausted()) - return null; Long date = convertDate(results.one().getString("databegin")); return date; } + private String FindStatus(String jobid) { + String com = "SELECT FinalStatus FROM ProteinLog WHERE JobID = '" + jobid + "';"; + System.out.println("Command: " + com); + ResultSet results = session.execute(com); + String status = results.one().getString("FinalStatus"); + System.out.println("*****status: " + status); + return status; + } protected long convertDate (String d) { try {