|
OpenNMS API 1.2.3 | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.opennms.netmgt.scheduler.Scheduler
This class implements a simple scheduler to ensure the polling occurs at the expected intervals. The scheduler employees a dynamic thread pool that adjust to the load until a maximum thread count is reached.
Nested Class Summary | |
static class |
Scheduler.PeekableFifoQueue
This queue extends the standard FIFO queue instance so that it is possible to peek at an instance without removing it from the queue. |
Field Summary | |
private java.lang.String |
m_name
The name of this fiber. |
java.util.Map |
m_queues
The map of queue that contain ready runnable
instances. |
RunnableConsumerThreadPool |
m_runner
The pool of threads that are used to executed the runnable instances scheduled by the class' instance. |
int |
m_scheduled
The total number of elements currently scheduled. |
int |
m_status
The status for this fiber. |
private java.lang.Thread |
m_worker
The worker thread that executes this instance. |
Fields inherited from interface org.opennms.core.fiber.PausableFiber |
PAUSE_PENDING, PAUSED, RESUME_PENDING |
Fields inherited from interface org.opennms.core.fiber.Fiber |
RUNNING, START_PENDING, STARTING, STATUS_NAMES, STOP_PENDING, STOPPED |
Constructor Summary | |
Scheduler(java.lang.String parent,
int maxSize)
Constructs a new instance of the scheduler. |
|
Scheduler(java.lang.String parent,
int maxSize,
float lowMark,
float hiMark)
Constructs a new instance of the scheduler. |
Method Summary | |
long |
getCurrentTime()
This returns the current time for the scheduler |
java.lang.String |
getName()
Returns the name of this fiber. |
int |
getStatus()
Returns the current of this fiber. |
void |
pause()
Pauses the scheduler if it is current running. |
void |
resume()
Resumes the scheduler if it has been paused. |
void |
run()
The main method of the scheduler. |
void |
schedule(long interval,
ReadyRunnable runnable)
This method is used to schedule a ready runnable in the system. |
void |
schedule(ReadyRunnable runnable,
long interval)
This method is used to schedule a ready runnable in the system. |
void |
start()
Starts the fiber. |
void |
stop()
Stops the fiber. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
public java.util.Map m_queues
ready runnable
instances. The queues are mapped according to the interval of scheduling.
public int m_scheduled
public RunnableConsumerThreadPool m_runner
private java.lang.String m_name
public int m_status
private java.lang.Thread m_worker
Constructor Detail |
public Scheduler(java.lang.String parent, int maxSize)
parent
- String prepended to "Scheduler" to create fiber namemaxSize
- The maximum size of the thread pool.public Scheduler(java.lang.String parent, int maxSize, float lowMark, float hiMark)
parent
- String prepended to "Scheduler" to create fiber namemaxSize
- The maximum size of the thread pool.lowMark
- The low water mark ratios of thread size to threads when
threads are stopped.hiMark
- The high water mark ratio of thread size to threads when
threads are started.Method Detail |
public void schedule(ReadyRunnable runnable, long interval)
runnable
- The element to run when interval expires.interval
- The queue to add the runnable to.
java.lang.RuntimeException
- Thrown if an error occurs adding the element to the queue.public void schedule(long interval, ReadyRunnable runnable)
schedule
in interface ScheduleTimer
interval
- The queue to add the runnable to.runnable
- The element to run when interval expires.
java.lang.RuntimeException
- Thrown if an error occurs adding the element to the queue.public long getCurrentTime()
getCurrentTime
in interface Timer
public void start()
start
in interface Fiber
java.lang.IllegalStateException
- Thrown if the fiber is already running.public void stop()
stop
in interface Fiber
java.lang.IllegalStateException
- Throws if the fiber has never been started.public void pause()
pause
in interface PausableFiber
java.lang.IllegalStateException
- Throws if the operation could not be completed due to the
fiber's state.public void resume()
resume
in interface PausableFiber
java.lang.IllegalStateException
- Throws if the operation could not be completed due to the
fiber's state.public int getStatus()
getStatus
in interface Fiber
public java.lang.String getName()
getName
in interface Fiber
Fiber
.public void run()
run
in interface java.lang.Runnable
|
OpenNMS API 1.2.3 | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |