Class HarvestMonitor
- java.lang.Object
-
- dk.netarkivet.harvester.distribute.HarvesterMessageHandler
-
- dk.netarkivet.harvester.harvesting.monitor.HarvestMonitor
-
- All Implemented Interfaces:
CleanupIF
,HarvesterMessageVisitor
,javax.jms.MessageListener
public class HarvestMonitor extends HarvesterMessageHandler implements javax.jms.MessageListener, CleanupIF
Listens forCrawlProgressMessage
s on the proper JMS channel, and stores information to be presented in the monitoring console.
-
-
Field Summary
Fields Modifier and Type Field Description static ChannelID
HARVEST_MONITOR_CHANNEL_ID
The JMS channel on which to listen forCrawlProgressMessage
s.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
cleanup()
Close down the HarvestMonitor singleton.static int
getAutoRefreshDelay()
Returns the delay in seconds after which a harvest monitor webpage should refresh itself.static String
getChartFilePath(long jobId)
Returns the path of the chart image file, relative to the webapp directory.static InMemoryFrontierReport
getFrontierActiveAndInactiveQueuesReport(long jobId, boolean sort)
Retrieve a frontier report from a job id, with limited results and possibility to sort by totalenqueues DESCstatic InMemoryFrontierReport
getFrontierExhaustedQueues(long jobId)
Retrieves the latest frontier extract report stored for the given job ID, that contains only exhausted queues.static InMemoryFrontierReport
getFrontierReport(long jobId)
Retrieves the latest frontier report stored for the given job ID.static InMemoryFrontierReport
getFrontierReport(long jobId, boolean sort)
Retrieve a frontier report from a job id, with limited results and possibility to sort by totalenqueues DESCstatic InMemoryFrontierReport
getFrontierRetiredQueues(long jobId)
Retrieves the latest frontier extract report stored for the given job ID, that contains only retired queues.static HarvestMonitor
getInstance()
static StartedJobInfo
getMostRecentRunningJobInfo(long jobId)
Returns the most recent running job info record available for the given job ID.static StartedJobInfo[]
getMostRecentRunningJobInfos(long jobId)
Returns a configurable number of the most recent running job info records available for the given job ID.Set<Long>
getRunningJobs()
void
visit(CrawlProgressMessage msg)
This method should be overridden and implemented by a sub class if message handling is wanted.void
visit(FrontierReportMessage msg)
This method should be overridden and implemented by a sub class if message handling is wanted.void
visit(JobEndedMessage msg)
Cleans up the database on transitions to status DONE and FAILED.-
Methods inherited from class dk.netarkivet.harvester.distribute.HarvesterMessageHandler
onMessage, visit, visit, visit, visit, visit, visit, visit
-
-
-
-
Field Detail
-
HARVEST_MONITOR_CHANNEL_ID
public static final ChannelID HARVEST_MONITOR_CHANNEL_ID
The JMS channel on which to listen forCrawlProgressMessage
s.
-
-
Method Detail
-
cleanup
public void cleanup()
Close down the HarvestMonitor singleton. This removes the HarvestMonitor as listener to the JMS scheduler and frontier channels, closes the persistence container, and resets the singleton.- Specified by:
cleanup
in interfaceCleanupIF
- See Also:
CleanupIF.cleanup()
-
getInstance
public static HarvestMonitor getInstance()
- Returns:
- the singleton instance for this class.
-
visit
public void visit(CrawlProgressMessage msg)
Description copied from class:HarvesterMessageHandler
This method should be overridden and implemented by a sub class if message handling is wanted.- Specified by:
visit
in interfaceHarvesterMessageVisitor
- Overrides:
visit
in classHarvesterMessageHandler
- Parameters:
msg
- aCrawlProgressMessage
-
visit
public void visit(JobEndedMessage msg)
Cleans up the database on transitions to status DONE and FAILED.- Specified by:
visit
in interfaceHarvesterMessageVisitor
- Overrides:
visit
in classHarvesterMessageHandler
- Parameters:
msg
- aJobEndedMessage
-
getAutoRefreshDelay
public static final int getAutoRefreshDelay()
Returns the delay in seconds after which a harvest monitor webpage should refresh itself. This delay is set by overriding the value of theHarvesterSettings.HARVEST_MONITOR_REFRESH_INTERVAL
property.- Returns:
- the delay in seconds after which a harvest monitor webpage should refresh itself
-
getMostRecentRunningJobInfos
public static StartedJobInfo[] getMostRecentRunningJobInfos(long jobId)
Returns a configurable number of the most recent running job info records available for the given job ID.- Parameters:
jobId
-- Returns:
- the most recent running job info records available for the given job ID.
- See Also:
HarvesterSettings.HARVEST_MONITOR_DISPLAYED_HISTORY_SIZE
-
getMostRecentRunningJobInfo
public static StartedJobInfo getMostRecentRunningJobInfo(long jobId)
Returns the most recent running job info record available for the given job ID.- Parameters:
jobId
-- Returns:
- the most recent running job info records available for the given job ID.
-
visit
public void visit(FrontierReportMessage msg)
Description copied from class:HarvesterMessageHandler
This method should be overridden and implemented by a sub class if message handling is wanted.- Specified by:
visit
in interfaceHarvesterMessageVisitor
- Overrides:
visit
in classHarvesterMessageHandler
- Parameters:
msg
- aFrontierReportMessage
-
getFrontierReport
public static InMemoryFrontierReport getFrontierReport(long jobId)
Retrieves the latest frontier report stored for the given job ID.- Parameters:
jobId
- the job id- Returns:
- a frontier report
-
getFrontierReport
public static InMemoryFrontierReport getFrontierReport(long jobId, boolean sort)
Retrieve a frontier report from a job id, with limited results and possibility to sort by totalenqueues DESC- Parameters:
jobId
- the job idlimit
- the limit of result to querysort
- if true, sort the results by totalenqueues DESC- Returns:
- a frontier report
-
getFrontierActiveAndInactiveQueuesReport
public static InMemoryFrontierReport getFrontierActiveAndInactiveQueuesReport(long jobId, boolean sort)
Retrieve a frontier report from a job id, with limited results and possibility to sort by totalenqueues DESC- Parameters:
jobId
- the job idlimit
- the limit of result to querysort
- if true, sort the results by totalenqueues DESC- Returns:
- a frontier report
-
getFrontierRetiredQueues
public static InMemoryFrontierReport getFrontierRetiredQueues(long jobId)
Retrieves the latest frontier extract report stored for the given job ID, that contains only retired queues.- Parameters:
jobId
- the job id- Returns:
- a frontier report that contains only retired queues.
-
getFrontierExhaustedQueues
public static InMemoryFrontierReport getFrontierExhaustedQueues(long jobId)
Retrieves the latest frontier extract report stored for the given job ID, that contains only exhausted queues.- Parameters:
jobId
- the job id- Returns:
- a frontier report that contains only exhausted queues.
-
getChartFilePath
public static String getChartFilePath(long jobId)
Returns the path of the chart image file, relative to the webapp directory. If no chart is available, returns a default empty image.- Parameters:
jobId
- the job id- Returns:
- the path of the chart image file, relative to the webapp directory.
-
-