Package org.opennms.netmgt.scheduler
Class LegacyScheduler
- java.lang.Object
-
- org.opennms.netmgt.scheduler.LegacyScheduler
-
- All Implemented Interfaces:
Runnable,Fiber,PausableFiber,Scheduler,ScheduleTimer,Timer
public class LegacyScheduler extends Object implements Runnable, PausableFiber, 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.- Author:
- Mike Davidson , Brian Weaver , OpenNMS
-
-
Field Summary
-
Fields inherited from interface org.opennms.core.fiber.Fiber
RUNNING, START_PENDING, STARTING, STATUS_NAMES, STOP_PENDING, STOPPED
-
Fields inherited from interface org.opennms.core.fiber.PausableFiber
PAUSE_PENDING, PAUSED, RESUME_PENDING
-
-
Constructor Summary
Constructors Constructor Description LegacyScheduler(String parent, int maxSize)Constructs a new instance of the scheduler.LegacyScheduler(String parent, int maxSize, float lowMark, float hiMark)Constructs a new instance of the scheduler.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description longgetCurrentTime()getCurrentTimeStringgetName()Returns the name of this fiber.longgetNumTasksExecuted()Returns the total number of scheduled tasks (ReadyRunnables) that have been executed since the scheduler was initialized.ExecutorServicegetRunner()Returns the pool of threads that are used to executed the runnable instances scheduled by the class' instance.intgetScheduled()Returns total number of elements currently scheduled.intgetStatus()getStatusvoidpause()pausevoidresume()resumevoidrun()The main method of the scheduler.voidschedule(long interval, ReadyRunnable runnable)schedulevoidschedule(ReadyRunnable runnable, long interval)This method is used to schedule a ready runnable in the system.voidstart()startvoidstop()stop
-
-
-
Constructor Detail
-
LegacyScheduler
public LegacyScheduler(String parent, int maxSize)
Constructs a new instance of the scheduler. The maximum number of executable threads is specified in the constructor. The executable threads are part of a runnable thread pool where the scheduled runnables are executed.- Parameters:
parent- String prepended to "Scheduler" to create fiber namemaxSize- The maximum size of the thread pool.
-
LegacyScheduler
public LegacyScheduler(String parent, int maxSize, float lowMark, float hiMark)
Constructs a new instance of the scheduler. The maximum number of executable threads is specified in the constructor. The executable threads are part of a runnable thread pool where the scheduled runnables are executed.- Parameters:
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
-
schedule
public void schedule(ReadyRunnable runnable, long interval)
This method is used to schedule a ready runnable in the system. The interval is used as the key for determining which queue to add the runnable.- Parameters:
runnable- The element to run when interval expires.interval- The queue to add the runnable to.- Throws:
RuntimeException- Thrown if an error occurs adding the element to the queue.
-
schedule
public void schedule(long interval, ReadyRunnable runnable)schedule
This method is used to schedule a ready runnable in the system. The interval is used as the key for determining which queue to add the runnable.- Specified by:
schedulein interfaceScheduler- Specified by:
schedulein interfaceScheduleTimer- Parameters:
interval- a long.runnable- aReadyRunnableobject.
-
getCurrentTime
public long getCurrentTime()
getCurrentTime
- Specified by:
getCurrentTimein interfaceScheduler- Specified by:
getCurrentTimein interfaceTimer- Returns:
- a long.
-
start
public void start()
start
-
stop
public void stop()
stop
-
pause
public void pause()
pause
- Specified by:
pausein interfacePausableFiber- Specified by:
pausein interfaceScheduler
-
resume
public void resume()
resume
- Specified by:
resumein interfacePausableFiber- Specified by:
resumein interfaceScheduler
-
getStatus
public int getStatus()
getStatus
-
getName
public String getName()
Returns the name of this fiber.
-
getScheduled
public int getScheduled()
Returns total number of elements currently scheduled.- Returns:
- the sum of all the elements in the various queues
-
getRunner
public ExecutorService getRunner()
Returns the pool of threads that are used to executed the runnable instances scheduled by the class' instance.- Returns:
- thread pool
-
run
public void run()
The main method of the scheduler. This method is responsible for checking the runnable queues for ready objects and then enqueuing them into the thread pool for execution.
-
getNumTasksExecuted
public long getNumTasksExecuted()
Returns the total number of scheduled tasks (ReadyRunnables) that have been executed since the scheduler was initialized.- Specified by:
getNumTasksExecutedin interfaceScheduler- Returns:
- the number of task executed
-
-