|
||||||||||
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 | |
---|---|
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()
|
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. |
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 |
setQueue(org.apache.jetspeed.util.Queue queue)
|
void |
start()
|
void |
stop()
|
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
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
public void setQueue(org.apache.jetspeed.util.Queue queue)
setQueue
in interface org.apache.jetspeed.aggregator.WorkerMonitor
protected void addWorkers(int wCount)
wCount
- the number of workers to createpublic org.apache.jetspeed.aggregator.Worker getWorker()
getWorker
in interface org.apache.jetspeed.aggregator.WorkerMonitor
public void process(org.apache.jetspeed.aggregator.RenderingJob job)
process
in interface org.apache.jetspeed.aggregator.WorkerMonitor
job
- the Job to processpublic void release(org.apache.jetspeed.aggregator.Worker worker)
release
in interface org.apache.jetspeed.aggregator.WorkerMonitor
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 |