|
||||||||||
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.
Nested Class Summary | |
---|---|
(package private) class |
WorkerMonitorImpl.RenderingJobTimeoutMonitor
|
Field Summary | |
---|---|
static String |
ACCESS_CONTROL_CONTEXT_WORKER_ATTR
|
protected 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 org.apache.jetspeed.util.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 ThreadGroup |
tg
The thread group used to group all worker threads |
protected Stack |
workers
Stack containing currently idle workers |
protected 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()
|
int |
getRunningJobsCount()
|
protected org.apache.jetspeed.aggregator.Worker |
getWorker()
Retrieves an idle worker |
void |
process(org.apache.jetspeed.aggregator.RenderingJob job)
Assign a job to a worker and execute it or queue the job if no worker is available. |
protected void |
release(org.apache.jetspeed.aggregator.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()
|
void |
stop()
|
void |
waitForRenderingJobs(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 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 Stack workers
protected ThreadGroup tg
protected org.apache.jetspeed.util.Queue queue
protected List workersMonitored
protected WorkerMonitorImpl.RenderingJobTimeoutMonitor jobMonitor
Constructor Detail |
---|
public WorkerMonitorImpl(int minWorkers, int maxWorkers, int spareWorkers, int maxJobsPerWorker)
Method Detail |
---|
public void start()
start
in interface org.apache.jetspeed.aggregator.WorkerMonitor
public void stop()
stop
in interface org.apache.jetspeed.aggregator.WorkerMonitor
protected void addWorkers(int wCount)
wCount
- the number of workers to createprotected org.apache.jetspeed.aggregator.Worker getWorker()
public void process(org.apache.jetspeed.aggregator.RenderingJob job)
process
in interface org.apache.jetspeed.aggregator.WorkerMonitor
job
- the Job to processpublic void waitForRenderingJobs(List renderingJobs)
waitForRenderingJobs
in interface org.apache.jetspeed.aggregator.WorkerMonitor
renderingJobs
- the Collection of rendering job objects to wait for.protected void release(org.apache.jetspeed.aggregator.Worker worker)
public int getQueuedJobsCount()
getQueuedJobsCount
in interface org.apache.jetspeed.aggregator.WorkerMonitor
public int getAvailableJobsCount()
getAvailableJobsCount
in interface org.apache.jetspeed.aggregator.WorkerMonitor
public int getRunningJobsCount()
getRunningJobsCount
in interface org.apache.jetspeed.aggregator.WorkerMonitor
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |