|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.apache.jetspeed.aggregator.impl.WorkerMonitorImpl
public class WorkerMonitorImpl
The WorkerMonitor is responsible for dispatching jobs to workers It uses an Apache HTTPd configuration style of min/max/spare workers threads to throttle the rendering work. If jobs come in faster that processing, they are stored in a queue which is flushed periodically by a QueueMonitor.
Field Summary | |
---|---|
static java.lang.String |
ACCESS_CONTROL_CONTEXT_WORKER_ATTR
|
protected org.apache.jetspeed.aggregator.impl.WorkerMonitorImpl.RenderingJobTimeoutMonitor |
jobMonitor
Renering Job Timeout monitor |
protected static org.apache.commons.logging.Log |
log
Commons logging |
protected int |
maxJobsPerWorker
Maximum of job processed by a worker before being released |
protected int |
maxWorkers
Maximum number of workers |
protected int |
minWorkers
Minimum number of wokers to create |
protected Queue |
queue
Job queue |
protected int |
runningJobs
Count of running jobs |
protected static long |
sCount
Static counters for identifying workers |
protected int |
spareWorkers
Minimum amount of spare workers |
protected java.lang.ThreadGroup |
tg
The thread group used to group all worker threads |
protected java.util.Stack |
workers
Stack containing currently idle workers |
protected java.util.List |
workersMonitored
Workers to be monitored for timeout checking |
Constructor Summary | |
---|---|
WorkerMonitorImpl(int minWorkers,
int maxWorkers,
int spareWorkers,
int maxJobsPerWorker)
|
Method Summary | |
---|---|
protected void |
addWorkers(int wCount)
Create the request number of workers and add them to list of available workers. |
int |
getAvailableJobsCount()
Returns a snapshot of the available jobs |
int |
getQueuedJobsCount()
Retrieves a snapshot of job count in the waiting (backlogged) queue |
int |
getRunningJobsCount()
Returns a snapshot count of the jobs currently running |
protected Worker |
getWorker()
Retrieves an idle worker |
void |
process(RenderingJob job)
Assign a job to a worker and execute it or queue the job if no worker is available. |
protected void |
release(Worker worker)
Put back the worker in the idle queue unless there are pending jobs and worker can still be committed to a new job before being released. |
void |
start()
Start processing the worker monitor |
void |
stop()
Stop processing the worker monitor Finish all jobs |
void |
waitForRenderingJobs(java.util.List renderingJobs)
Wait for all rendering jobs in the collection to finish successfully or otherwise. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final java.lang.String ACCESS_CONTROL_CONTEXT_WORKER_ATTR
protected static final org.apache.commons.logging.Log log
protected static long sCount
protected int runningJobs
protected int minWorkers
protected int maxWorkers
protected int spareWorkers
protected int maxJobsPerWorker
protected java.util.Stack workers
protected java.lang.ThreadGroup tg
protected Queue queue
protected java.util.List workersMonitored
protected org.apache.jetspeed.aggregator.impl.WorkerMonitorImpl.RenderingJobTimeoutMonitor jobMonitor
Constructor Detail |
---|
public WorkerMonitorImpl(int minWorkers, int maxWorkers, int spareWorkers, int maxJobsPerWorker)
Method Detail |
---|
public void start()
WorkerMonitor
start
in interface WorkerMonitor
public void stop()
WorkerMonitor
stop
in interface WorkerMonitor
protected void addWorkers(int wCount)
wCount
- the number of workers to createprotected Worker getWorker()
public void process(RenderingJob job)
process
in interface WorkerMonitor
job
- the Job to processpublic void waitForRenderingJobs(java.util.List renderingJobs)
waitForRenderingJobs
in interface WorkerMonitor
renderingJobs
- the Collection of rendering job objects to wait for.protected void release(Worker worker)
public int getQueuedJobsCount()
WorkerMonitor
getQueuedJobsCount
in interface WorkerMonitor
public int getAvailableJobsCount()
getAvailableJobsCount
in interface WorkerMonitor
public int getRunningJobsCount()
WorkerMonitor
getRunningJobsCount
in interface WorkerMonitor
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |