1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.jetspeed.aggregator;
18
19 import java.util.List;
20
21 import org.apache.jetspeed.util.Queue;
22
23 /***
24 * The Worker Monitor is a thread manager and monitor for async portlet aggregation
25 * and rendering.
26 *
27 * @author <a href="mailto:taylor@apache.org">David Sean Taylor</a>
28 * @version $Id: $
29 */
30 public interface WorkerMonitor
31 {
32 /***
33 * Start processing the worker monitor
34 *
35 */
36 void start();
37
38 /***
39 * Stop processing the worker monitor
40 * Finish all jobs
41 *
42 */
43 void stop();
44
45 /***
46 * Retrieves a snapshot of job count in the waiting (backlogged) queue
47 *
48 * @return snapshot count of waiting jobs
49 */
50 int getQueuedJobsCount();
51
52 /***
53 * Returns a snapshot count of the available jobs
54 * @return available jobs count
55 */
56 int getAvailableJobsCount();
57
58 /***
59 * Returns a snapshot count of the jobs currently running
60 *
61 * @return snapshot count of running jobs
62 */
63 int getRunningJobsCount();
64
65 /***
66 * Start processing a job, assign it to a worker thread.
67 *
68 * @param job
69 */
70 void process(RenderingJob job);
71
72 /***
73 * Wait for all rendering jobs in the collection to finish successfully or otherwise.
74 * @param renderingJobs the Collection of rendering job objects to wait for.
75 */
76 public void waitForRenderingJobs(List renderingJobs);
77 }