Package com.kheops.util
Class KScheduler
java.lang.Object
java.lang.Thread
com.kheops.util.KScheduler
- All Implemented Interfaces:
Runnable
A KScheduler executes scheduled jobs (notifications). Clients simply register
with the scheduler to be notified sometime in the future. The job can be
done only once or be recurrent. The clients must implement the interface
KSchedulerClient
. The scheduler must be explicitly started.-
Nested Class Summary
Nested classes/interfaces inherited from class java.lang.Thread
Thread.Builder, Thread.State, Thread.UncaughtExceptionHandler
-
Field Summary
Fields inherited from class java.lang.Thread
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
addJob
(KSchedulerClient client, int jobId, long delay, boolean recurrent) Adds a new job in the scheduler.void
callMeEveryNSeconds
(KSchedulerClient client, int jobId, long delay) Deprecated.Use addJob method instead.void
callMeNow
(KSchedulerClient client, int jobId) Deprecated.Use addJob method instead.static void
close()
Closes the scheduler.static KScheduler
Retrieves the unique instance (singleton) of KScheduler.void
removeJob
(KSchedulerClient client, int jobId) Removes a job for the specified client with the specified job id.void
run()
Overrides the run methodvoid
stopCallingMe
(KSchedulerClient client, int jobId) Deprecated.Use removeJob method instead.Methods inherited from class java.lang.Thread
activeCount, checkAccess, clone, countStackFrames, currentThread, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, isVirtual, join, join, join, join, ofPlatform, ofVirtual, onSpinWait, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, sleep, start, startVirtualThread, stop, suspend, threadId, toString, yield
-
Constructor Details
-
KScheduler
Deprecated.KScheduler should be used as a Singleton. Use getInstance instead to obtain the unique instance of KScheduler.Constructs a new KScheduler object.
-
-
Method Details
-
getInstance
Retrieves the unique instance (singleton) of KScheduler.- Returns:
- the KScheduler Instance
-
run
public void run()Overrides the run method -
addJob
Adds a new job in the scheduler. The specified client will be notified when the specified delay expires. If the recurrent flag is true, yhen the client will be notified recurrently, using the specified delay as the period. A same client can add more than jobs, as long as the jobs are identified using different jobId's.- Parameters:
client
- the client to notifyjobId
- a number assigned to the job. Must be unique for a given client.delay
- number of milliseconds to wait until the client is notified by the schedulerrecurrent
- if true, the client will be notified recurrently, once every delay millisecondes. Otherwise, the client will be notified only once.
-
callMeEveryNSeconds
Deprecated.Use addJob method instead.Registers the specified client to be notified recurrently using the specified period.- Parameters:
client
- the client to notifyjobId
- the id of the jobdelay
- the number of seconds between each notification
-
callMeNow
Deprecated.Use addJob method instead.Registers the specified client to be notified once as soon as possible. Can be useful to schedule jobs when the scheduler is not started yet. These jobs will be executed one after the other when the scheduler gets started.- Parameters:
client
- the client to notifyjobId
- the id of the job
-
removeJob
Removes a job for the specified client with the specified job id.- Parameters:
client
- the client associated with the jobjobId
- the id of the job to remove
-
stopCallingMe
Deprecated.Use removeJob method instead.Removes a job for the specified client with the specified job id.- Parameters:
client
- the client associated with the jobjobId
- the id of the job to remove
-
close
public static void close()Closes the scheduler.
-