dk.netarkivet.harvester.datamodel
Class RunningJobsInfoDBDAO

java.lang.Object
  extended by dk.netarkivet.harvester.datamodel.RunningJobsInfoDAO
      extended by dk.netarkivet.harvester.datamodel.RunningJobsInfoDBDAO

public class RunningJobsInfoDBDAO
extends RunningJobsInfoDAO

Class implementing the persistence of running job infos.


Constructor Summary
RunningJobsInfoDBDAO()
           
 
Method Summary
 int deleteFrontierReports(long jobId)
          Deletes all frontier report data pertaining to the given job id from the persistent storage.
 InMemoryFrontierReport getFrontierReport(long jobId, java.lang.String filterId)
          Retrieve a frontier report from a job id and a given filter class.
 java.lang.String[] getFrontierReportFilterTypes()
          Returns the list of tyhe available frontier report types.
 StartedJobInfo[] getFullJobHistory(long jobId)
          Returns an array of all progress records chronologically sorted for the given job ID.
 java.util.Set<java.lang.Long> getHistoryRecordIds()
          Returns the ids of jobs for which history records exist as an immutable set.
 java.util.Map<java.lang.String,java.util.List<StartedJobInfo>> getMostRecentByHarvestName()
          Returns the most recent record for every job, partitioned by harvest definition name.
 StartedJobInfo getMostRecentByJobId(long jobId)
          Returns the most recent progress record for the given job ID.
 StartedJobInfo[] getMostRecentByJobId(long jobId, long startTime, int limit)
          Returns an array of chronologically sorted progress records for the given job ID, starting at a given crawl time, and limited to a given number of record.
 int removeInfoForJob(long jobId)
          Removes all records pertaining to the given job ID from the persistent storage.
 void store(StartedJobInfo startedJobInfo)
          Stores a StartedJobInfo record to the persistent storage.
 int storeFrontierReport(java.lang.String filterId, InMemoryFrontierReport report)
          Store frontier report data to the persistent storage.
 
Methods inherited from class dk.netarkivet.harvester.datamodel.RunningJobsInfoDAO
getInstance
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

RunningJobsInfoDBDAO

public RunningJobsInfoDBDAO()
Method Detail

store

public void store(StartedJobInfo startedJobInfo)
Stores a StartedJobInfo record to the persistent storage. The record is stored in the monitor table, and if the elapsed time since the last history sample is equal or superior to the history sample rate, also to the history table.

Specified by:
store in class RunningJobsInfoDAO
Parameters:
startedJobInfo - the record to store.

getFullJobHistory

public StartedJobInfo[] getFullJobHistory(long jobId)
Returns an array of all progress records chronologically sorted for the given job ID.

Specified by:
getFullJobHistory in class RunningJobsInfoDAO
Parameters:
jobId - the job id.
Returns:
an array of all progress records chronologically sorted for the given job ID.

getMostRecentByHarvestName

public java.util.Map<java.lang.String,java.util.List<StartedJobInfo>> getMostRecentByHarvestName()
Returns the most recent record for every job, partitioned by harvest definition name.

Specified by:
getMostRecentByHarvestName in class RunningJobsInfoDAO
Returns:
the full listing of started job information, partitioned by harvest definition name.

getHistoryRecordIds

public java.util.Set<java.lang.Long> getHistoryRecordIds()
Returns the ids of jobs for which history records exist as an immutable set.

Specified by:
getHistoryRecordIds in class RunningJobsInfoDAO
Returns:
the ids of jobs for which history records exist.

getMostRecentByJobId

public StartedJobInfo[] getMostRecentByJobId(long jobId,
                                             long startTime,
                                             int limit)
Returns an array of chronologically sorted progress records for the given job ID, starting at a given crawl time, and limited to a given number of record.

Specified by:
getMostRecentByJobId in class RunningJobsInfoDAO
Parameters:
jobId - the job id.
startTime - the crawl time (in seconds) to begin.
limit - the maximum number of records to fetch.
Returns:
an array of chronologically sorted progress records for the given job ID, starting at a given crawl time, and limited to a given number of record.

getMostRecentByJobId

public StartedJobInfo getMostRecentByJobId(long jobId)
Returns the most recent progress record for the given job ID.

Specified by:
getMostRecentByJobId in class RunningJobsInfoDAO
Parameters:
jobId - the job id.
Returns:
the most recent progress record for the given job ID.

removeInfoForJob

public int removeInfoForJob(long jobId)
Removes all records pertaining to the given job ID from the persistent storage.

Specified by:
removeInfoForJob in class RunningJobsInfoDAO
Parameters:
jobId - the job id.
Returns:
the number of deleted records.

storeFrontierReport

public int storeFrontierReport(java.lang.String filterId,
                               InMemoryFrontierReport report)
Store frontier report data to the persistent storage.

Specified by:
storeFrontierReport in class RunningJobsInfoDAO
Parameters:
report - the report to store
filterId - the id of the filter that produced the report
Returns:
the update count

getFrontierReportFilterTypes

public java.lang.String[] getFrontierReportFilterTypes()
Returns the list of tyhe available frontier report types.

Specified by:
getFrontierReportFilterTypes in class RunningJobsInfoDAO
Returns:
the list of tyhe available frontier report types.
See Also:
FrontierReportFilter.getFilterId()

getFrontierReport

public InMemoryFrontierReport getFrontierReport(long jobId,
                                                java.lang.String filterId)
Retrieve a frontier report from a job id and a given filter class.

Specified by:
getFrontierReport in class RunningJobsInfoDAO
Parameters:
jobId - the job id
filterId - the id of the filter that produced the report
Returns:
a frontier report

deleteFrontierReports

public int deleteFrontierReports(long jobId)
Deletes all frontier report data pertaining to the given job id from the persistent storage.

Specified by:
deleteFrontierReports in class RunningJobsInfoDAO
Parameters:
jobId - the job id
Returns:
the update count