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 long
getCurrentTime()
getCurrentTimeString
getName()
Returns the name of this fiber.long
getNumTasksExecuted()
Returns the total number of scheduled tasks (ReadyRunnables) that have been executed since the scheduler was initialized.ExecutorService
getRunner()
Returns the pool of threads that are used to executed the runnable instances scheduled by the class' instance.int
getScheduled()
Returns total number of elements currently scheduled.int
getStatus()
getStatusvoid
pause()
pausevoid
resume()
resumevoid
run()
The main method of the scheduler.void
schedule(long interval, ReadyRunnable runnable)
schedulevoid
schedule(ReadyRunnable runnable, long interval)
This method is used to schedule a ready runnable in the system.void
start()
startvoid
stop()
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:
schedule
in interfaceScheduler
- Specified by:
schedule
in interfaceScheduleTimer
- Parameters:
interval
- a long.runnable
- aReadyRunnable
object.
-
getCurrentTime
public long getCurrentTime()
getCurrentTime
- Specified by:
getCurrentTime
in interfaceScheduler
- Specified by:
getCurrentTime
in interfaceTimer
- Returns:
- a long.
-
start
public void start()
start
-
stop
public void stop()
stop
-
pause
public void pause()
pause
- Specified by:
pause
in interfacePausableFiber
- Specified by:
pause
in interfaceScheduler
-
resume
public void resume()
resume
- Specified by:
resume
in interfacePausableFiber
- Specified by:
resume
in 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:
getNumTasksExecuted
in interfaceScheduler
- Returns:
- the number of task executed
-
-