public class InMemoryJobQueue extends GenericService implements JobQueue, Schedulable
It stores IndexingJob object in memory only. So after server restarts, the job queue will be empty. The component tries to start indexing jobs when a running indexing job finishes. It also allows restarting of indexing jobs from the queue periodically (by specifying the schedule property).
Created: January 20 2012
JobQueue
,
SimpleIndexingAdmin
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
CLASS_VERSION
Class version string
|
protected ScheduledJob |
mScheduledJob |
SERVICE_INFO_KEY
DEFAULT_LOG_TRACE_STATUS
DEFAULT_LOG_DEBUG_STATUS, DEFAULT_LOG_ERROR_STATUS, DEFAULT_LOG_INFO_STATUS, DEFAULT_LOG_WARNING_STATUS
Constructor and Description |
---|
InMemoryJobQueue() |
Modifier and Type | Method and Description |
---|---|
protected javax.servlet.Servlet |
createAdminServlet()
Creates and returns a new Servlet that will administer this
service.
|
void |
doStartService()
This is called after a Service has been created, placed into the
naming hierarchy, and initialized with its configured property
values.
|
void |
doStopService()
This is called when a Service is required to shut down.
|
void |
enqueueJob(IndexingJob pJob,
boolean pPriorityJob)
Add an indexing job to the queue.
|
java.lang.String |
getJobId(IndexingJob pJob)
Generated internal ID for a job.
|
IndexingJob[] |
getQueuedJobs()
Returns an array of queued indexing jobs.
|
Schedule |
getSchedule()
Returns property schedule.
|
ScheduledJob |
getScheduledJob()
Returns property scheduledJob.
|
Scheduler |
getScheduler()
Returns property scheduler.
|
void |
performScheduledTask(Scheduler pScheduler,
ScheduledJob pJob)
Restarts all queued index jobs.
|
void |
processJobQueue()
Tries to restart all queued jobs in separate thread (to avoid any blocking issues).
|
void |
removeJob(IndexingJob pJob)
Removes indexing job from the queue.
|
void |
removeJob(java.lang.String pJobId)
Removes a job from the queue
|
void |
setSchedule(Schedule pSchedule)
Sets property schedule.
|
void |
setScheduler(Scheduler pScheduler)
Sets property scheduler.
|
protected void |
stopScheduledJob()
Stop the specified scheduled job and log any exception.
|
addLogListener, getAbsoluteName, getAdminServlet, getAdminServletOutputStreamEncoding, getLoggingForVlogging, getLogListenerCount, getLogListeners, getName, getNameContext, getNucleus, getRoot, getServiceConfiguration, getServiceInfo, isAdminServletUseServletOutputStream, isLoggingDebug, isLoggingError, isLoggingInfo, isLoggingTrace, isLoggingWarning, isRunning, logDebug, logDebug, logDebug, logError, logError, logError, logInfo, logInfo, logInfo, logTrace, logTrace, logTrace, logWarning, logWarning, logWarning, nameContextElementBound, nameContextElementUnbound, removeLogListener, reResolveThis, resolveName, resolveName, resolveName, resolveName, sendLogEvent, setAdminServletOutputStreamEncoding, setAdminServletUseServletOutputStream, setLoggingDebug, setLoggingError, setLoggingInfo, setLoggingTrace, setLoggingWarning, setNucleus, setServiceInfo, startService, stopService
vlogDebug, vlogDebug, vlogDebug, vlogDebug, vlogDebugTrace, vlogError, vlogError, vlogError, vlogError, vlogInfo, vlogInfo, vlogInfo, vlogInfo, vlogTrace, vlogTrace, vlogTrace, vlogTrace, vlogWarning, vlogWarning, vlogWarning, vlogWarning
public static java.lang.String CLASS_VERSION
protected ScheduledJob mScheduledJob
public void setScheduler(Scheduler pScheduler)
public Scheduler getScheduler()
public void setSchedule(Schedule pSchedule)
public Schedule getSchedule()
public ScheduledJob getScheduledJob()
public void enqueueJob(IndexingJob pJob, boolean pPriorityJob) throws IndexingException
enqueueJob
in interface JobQueue
pJob
- an indexing job to addpPriorityJob
- true
if the job should be dequeued firstIndexingException
public IndexingJob[] getQueuedJobs()
getQueuedJobs
in interface JobQueue
public java.lang.String getJobId(IndexingJob pJob)
pJob
- an indexing jobpublic void removeJob(IndexingJob pJob)
public void removeJob(java.lang.String pJobId)
pJobId
- Internal ID of a job which is generated by getJobId(IndexingJob)
.public void processJobQueue()
processJobQueue
in interface JobQueue
public void performScheduledTask(Scheduler pScheduler, ScheduledJob pJob)
performScheduledTask
in interface Schedulable
pScheduler
- calling the jobpJob
- the ScheduledJobprotected void stopScheduledJob()
public void doStartService() throws ServiceException
GenericService
doStartService
in class GenericService
ServiceException
- if the Service had a problem starting uppublic void doStopService() throws ServiceException
GenericService
doStopService
in class GenericService
ServiceException
- if the Service had a problem shutting downprotected javax.servlet.Servlet createAdminServlet()
GenericService
createAdminServlet
in class GenericService